Index: /src/gheat/__/LICENSE
===================================================================
--- /src/gheat/__/LICENSE	(revision 8853)
+++ /src/gheat/__/LICENSE	(revision 8853)
@@ -0,0 +1,39 @@
+=======================================
+    LEGAL
+======================================= 
+
+This code is released under an MIT license:
+
+  Copyright (c) 2008 Chad W. L. Whitacre
+
+  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.
+
+
+The code for generating the heatmap images was originally ported from Ruby 
+(under the MIT license):
+
+  http://blog.corunet.com/english/the-definitive-heatmap 
+
+
+And in the interest of full disclosure, you should know that this software
+incorporates code that was ported from Google's obfuscated JavaScript. This
+code is in the gmerc.py module under __/lib/python/site-packages/. Technically 
+speaking this is almost certainly a copyright infringement, but the code in 
+question is less than the "15-lines" rule of thumb often employed in matters of 
+code borrowing.
Index: /src/gheat/__/README
===================================================================
--- /src/gheat/__/README	(revision 8853)
+++ /src/gheat/__/README	(revision 8853)
@@ -0,0 +1,11 @@
+=======================================
+    GHEAT -- Google Heat Map
+=======================================
+
+This is gheat, a heat map tile server for Google Maps. It is implemented as
+an Aspen 0.8 application. Aspen is a Python webserver.
+
+For full information, see:
+
+  http://code.google.com/p/gheat/
+
Index: /src/gheat/__/bin/db.py
===================================================================
--- /src/gheat/__/bin/db.py	(revision 8853)
+++ /src/gheat/__/bin/db.py	(revision 8853)
@@ -0,0 +1,174 @@
+#!/usr/local/bin/python
+"""Update the database from the txt/csv file.
+
+First run "__/bin/db.py create", then run this script without arguments: it 
+should find the points.txt and points.db files.
+
+"""
+import csv
+import os
+import sqlite3
+import stat
+import sys
+from datetime import datetime
+
+import aspen
+aspen.configure()
+
+
+__all__ = ['clear', 'count', 'delete', 'sync']
+
+
+RAWPATH = os.path.join(aspen.paths.__, 'var', 'points.txt')
+DBPATH = os.path.join(aspen.paths.__, 'var', 'points.db')
+
+
+def _create():
+    cur = CONN.cursor()
+    cur.execute("""
+
+        CREATE TABLE IF NOT EXISTS points(
+
+            uid         TEXT UNIQUE PRIMARY KEY             ,
+            lat         REAL                                ,
+            lng         REAL                                ,
+
+            modtime     TIMESTAMP                           ,
+            seentime    TIMESTAMP
+
+        );
+
+    """)
+
+
+def clear():
+    cur = CONN.cursor()
+    cur.execute("DELETE FROM points")
+
+
+def count():
+    cur = CONN.cursor()
+    cur.execute("SELECT COUNT(uid) FROM points")
+    print cur.fetchone()[0]
+
+
+def delete():
+    os.remove(DBPATH)
+
+
+def sync():
+    """Synchronize points.db with points.txt.
+    """
+
+    sys.stdout.write('syncing'); sys.stdout.flush()
+
+    cur = CONN.cursor()
+    modtime = datetime.fromtimestamp(os.stat(RAWPATH)[stat.ST_MTIME])
+
+    for point in csv.reader(open(RAWPATH, 'r')):
+
+        # Parse and validate values.
+        # ==========================
+
+        uid, lat, lng = point
+        try:
+            lat = float(lat)
+            lng = float(lng)
+        except ValueError:
+            print "bad line:", point
+
+
+        # Select any existing record for this point.
+        # ==========================================
+        # After this, 'point' will either be None or a sqlite3.Row.
+
+        result = cur.execute("SELECT * FROM points WHERE uid = ?", (uid,))
+        result = result.fetchall()
+        numresults = len(result) if (result is not None) else 0
+        if numresults not in (0, 1):
+            msg = "%d result[s]; wanted 0 or 1" % numresults
+            print >> sys.stderr, "bad record: <%s> [%s]" % (uid, msg)
+        point = result[0] if (numresults == 1) else None
+
+
+        # Insert the point if we don't have it.
+        # =====================================
+
+        if point is None:
+            sys.stdout.write('O'); sys.stdout.flush()
+            cur.execute("""
+
+                INSERT INTO points
+                            (uid, lat, lng, modtime, seentime)
+                     VALUES (  ?,   ?,   ?,        ?,    ?)
+
+            """, (uid, lat, lng, modtime, modtime))
+
+
+        # Update the point if it has changed.
+        # ===================================
+
+        elif (point['lat'], point['lng']) != (lat, lng):
+            sys.stdout.write('o'); sys.stdout.flush()
+            #print (point['lat'], point['lng']), '!=', (lat, lng)
+
+            cur.execute("""
+
+                UPDATE points
+                   SET lat = ?
+                     , lng = ?
+                     , modtime = ?
+                     , seentime = ?
+                 WHERE uid = ?
+
+            """, (lat, lng, modtime, modtime, uid))
+
+
+        # If it hasn't changed, at least mark it as seen.
+        # ===============================================
+        # Otherwise we will delete it presently.
+
+        else:
+            sys.stdout.write('.'); sys.stdout.flush()
+            cur.execute( "UPDATE points SET seentime = ? WHERE uid = ?"
+                       , (modtime, uid)
+                        )
+
+
+    # Now delete rows that weren't in the latest txt file.
+    # ====================================================
+
+    cur.execute("DELETE FROM points WHERE seentime != ?", (modtime,))
+
+    print 'done'
+
+
+if __name__ == '__main__':
+
+    try:
+        subc = sys.argv[1]
+    except IndexError:
+        subc = 'sync' # default
+
+    if subc not in __all__:
+        raise SystemExit("I wonder, what does '%s' mean?" % subc)
+
+
+    # Connect and execute
+    # ===================
+    # The connect() call will create the database if it doesn't exist. If it was
+    # created (i.e., it didn't exist before connect()), we also need to create 
+    # the initial table. Since _create() only creates the table if it doesn't
+    # exist, and the little extra db hit doesn't affect performance here, we
+    # just call _create() every time.
+
+    need_table = os.path.isfile(DBPATH)
+    CONN = sqlite3.connect(DBPATH)
+    CONN.row_factory = sqlite3.Row # gives us key access
+    if subc != 'delete':
+        _create() # sets up our table if needed
+    func = globals()[subc]
+    func()
+    CONN.commit()
+    CONN.close()
+
Index: /src/gheat/__/bin/gen-dots.js
===================================================================
--- /src/gheat/__/bin/gen-dots.js	(revision 8853)
+++ /src/gheat/__/bin/gen-dots.js	(revision 8853)
@@ -0,0 +1,37 @@
+/* Generate ../etc/dots/dot*.png for use by gheat.
+ *
+ * Open ../etc/dots/master.psd in PhotoShop, and then run this script (File > 
+ * Automate > Scripts; if using PhotoShop version 7 you must have the scripting 
+ * plugin installed).
+ *
+ */
+
+
+if (documents.length == 0)
+{
+  alert("Please open a master dot file before running this script.");
+}
+else
+{
+    var w = activeDocument.width;
+    var h = activeDocument.height;
+    var step_w = w / 31;
+    var step_h = h / 31;
+
+    //alert("(" + step_w + ", " + step_h + "), (" + w + ", " + h + ")");
+
+    for(var i=0; i < 31; i++)
+    {
+        //if (i > 3) break; 
+        new_w = w - (step_w * i);
+        new_h = h - (step_h * i);
+        //alert(i + ": (" + new_w + ", " + new_h + ")");
+        activeDocument.resizeImage(new_w, new_h);
+        file = new File('../etc/dots/dot'+(30-i)+'.png');
+        opts = new PNGSaveOptions()
+        opts.interlaced = false;
+        activeDocument.saveAs(file, opts, true, Extension.LOWERCASE);
+        activeDocument.activeHistoryState = activeDocument.historyStates[0];
+    }
+}
+
Index: /src/gheat/__/bin/gen-tile.py
===================================================================
--- /src/gheat/__/bin/gen-tile.py	(revision 8853)
+++ /src/gheat/__/bin/gen-tile.py	(revision 8853)
@@ -0,0 +1,60 @@
+#!/usr/bin/env python
+# generate tiles
+
+"""Generate gheat tiles.
+"""
+import math
+import os
+import sys
+from os.path import join
+
+import aspen
+root = aspen.find_root()
+aspen.configure(['--root', root])
+
+from gmerc import ll2px
+from gheat import pil_ as backend
+
+
+color_schemes = dict()          # this is used below
+_color_schemes_dir = os.path.join(aspen.paths.__, 'etc', 'color-schemes')
+for fname in os.listdir(_color_schemes_dir):
+    if not fname.endswith('.png'):
+        continue
+    name = os.path.splitext(fname)[0]
+    fspath = os.path.join(_color_schemes_dir, fname)
+    color_schemes[name] = backend.ColorScheme(name, fspath)
+
+
+def load_dots(backend):
+    """Given a backend module, return a mapping of zoom level to Dot object.
+    """
+    return dict([(zoom, backend.Dot(zoom)) for zoom in range(16)])
+dots = load_dots(backend) # factored for easier use from scripts
+
+
+for zoom in [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]: # generate for zoomlevels
+    width, height = ll2px(-90, 180, zoom)
+    numcols = int(math.ceil(width / 256.0))
+    numrows = int(math.ceil(height / 256.0))
+    cs_name = 'classic'
+    color_scheme = color_schemes[cs_name]
+    for x in range(numcols):
+        for y in range(numrows):
+            fspath = join( aspen.paths.root
+                         , cs_name
+                         , str(zoom)
+                         , "%d,%d" % (x, y)
+                          ) + '.png'
+            tile = backend.Tile(color_scheme, dots, zoom, x, y, fspath)
+            sys.stdout.write('tile %s\n' % fspath); sys.stdout.flush()
+            if tile.is_empty():
+                sys.stdout.flush()
+            elif tile.is_stale():
+                sys.stdout.write('rebuilding tile %s\n' % fspath)
+                sys.stdout.flush()
+                tile.rebuild()
+                tile.save()
+            else:
+                sys.stdout.write('skipping cached tile %s\n' % fspath)
+                sys.stdout.flush()
Index: /src/gheat/__/bin/speed-test.py
===================================================================
--- /src/gheat/__/bin/speed-test.py	(revision 8853)
+++ /src/gheat/__/bin/speed-test.py	(revision 8853)
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+"""Set up and run a profiling scenario for gheat.
+
+Usage:
+
+    speed-test.py <backend> [<iterations>]
+
+The output will be a cProfile report. <iterations> defaults to 1. The expensive
+part is tile rebuilding, so we isolate that here.
+
+"""
+import cProfile
+import os
+import pstats
+import sys
+
+import aspen; aspen.configure()
+import gheat
+
+
+# Parse and validate command line arguments.
+# ==========================================
+
+USAGE = "Usage: speed-test.py <backend> [<iterations>]"
+
+if len(sys.argv) < 2:
+    print >> sys.stderr, USAGE
+    raise SystemExit
+image_library = sys.argv[1].lower()
+assert image_library in ('pygame', 'pil'), "bad image library"
+if image_library == 'pygame':
+    from gheat import pygame_ as backend
+elif image_library == 'pil':
+    from gheat import pil_ as backend
+
+try:
+    iterations = int(sys.argv[2])
+except IndexError:
+    iterations = 1 
+
+
+# Set up the test.
+# ================
+# This depends on our default data set for a juicy tile.
+
+color_path = os.path.join(aspen.paths.__, 'etc', 'color-schemes', 'classic.png')
+color_scheme = backend.ColorScheme('classic', color_path)
+dots = gheat.load_dots(backend)
+tile = backend.Tile(color_scheme, dots, 4, 4, 6, 'foo.png')
+
+def test():
+    for i in range(iterations):
+        tile.rebuild()
+
+
+# Run it.
+# =======
+
+cProfile.run('test()', 'stats.txt')
+p = pstats.Stats('stats.txt')
+p.strip_dirs().sort_stats('time').print_stats()
+os.remove('stats.txt')
+
Index: /src/gheat/__/doc/TODO
===================================================================
--- /src/gheat/__/doc/TODO	(revision 8853)
+++ /src/gheat/__/doc/TODO	(revision 8853)
@@ -0,0 +1,19 @@
+package
+documentation
+announcements
+    python-announce
+    blog
+    imaging-sig
+roll out on CCP
+===DONE===
+tilesets should be kept separate
+tilesets need to be separate in javascript so images can be cached
+fix opacity shift
+profile PIL and Pygame
+transparencies in PIL
+make transparencies similar
+empties in PIL
+offset is off? in pygame?
+profile again
+seeing very subtle squares around dots :^/ (pygame, classic)
+    not really noticint this anymore
Index: /src/gheat/__/etc/apps.conf
===================================================================
--- /src/gheat/__/etc/apps.conf	(revision 8853)
+++ /src/gheat/__/etc/apps.conf	(revision 8853)
@@ -0,0 +1,1 @@
+/	gheat:wsgi
Index: /src/gheat/__/etc/aspen.conf
===================================================================
--- /src/gheat/__/etc/aspen.conf	(revision 8853)
+++ /src/gheat/__/etc/aspen.conf	(revision 8853)
@@ -0,0 +1,4 @@
+[gheat]
+backend=PIL
+zoom_opaque=-100
+zoom_transparent=100
Index: /src/gheat/__/lib/python/gheat/__init__.py
===================================================================
--- /src/gheat/__/lib/python/gheat/__init__.py	(revision 8853)
+++ /src/gheat/__/lib/python/gheat/__init__.py	(revision 8853)
@@ -0,0 +1,182 @@
+import logging
+import os
+try:
+    from pysqlite2 import dbapi2 as sqlite3 # custom or OS-packaged version
+except ImportError:
+    import sqlite3                          # stock Python 2.5+ stdlib version
+import stat
+
+import aspen
+if not aspen.CONFIGURED: # for tests
+    aspen.configure()
+from aspen import ConfigurationError
+from aspen.handlers.static import wsgi as static_handler
+from aspen.utils import translate
+
+
+# Logging config
+# ==============
+
+if aspen.mode.DEVDEB:
+    level = logging.INFO
+else:
+    level = logging.WARNING
+logging.basicConfig(level=level) # Ack! This should be in Aspen. :^(
+log = logging.getLogger('gheat')
+
+
+# Configuration
+# =============
+# Set some things that backends will need.
+
+conf = aspen.conf.gheat
+
+ALWAYS_BUILD = ('true', 'yes', '1')
+ALWAYS_BUILD = conf.get('_always_build', '').lower() in ALWAYS_BUILD
+
+BUILD_EMPTIES = ('true', 'yes', '1')
+BUILD_EMPTIES = conf.get('_build_empties', 'true').lower() in BUILD_EMPTIES
+
+DIRMODE = conf.get('dirmode', '0755')
+try:
+    DIRMODE = int(eval(DIRMODE))
+except (NameError, SyntaxError, ValueError):
+    raise ConfigurationError("dirmode (%s) must be an integer." % dirmode)
+
+SIZE = 256 # size of (square) tile; NB: changing this will break gmerc calls!
+MAX_ZOOM = 17 # this depends on Google API; 0 is furthest out as of recent ver.
+
+
+# Database
+# ========
+
+def get_cursor():
+    """Return a database cursor.
+    """
+    db = sqlite3.connect(os.path.join(aspen.paths.__, 'var', 'points.db'))
+    db.row_factory = sqlite3.Row
+    return db.cursor()
+
+
+# Try to find an image library.
+# =============================
+
+BACKEND = None 
+BACKEND_PIL = False 
+BACKEND_PYGAME = False
+
+_want = conf.get('backend', '').lower()
+if _want not in ('pil', 'pygame', ''):
+    raise ConfigurationError( "The %s backend is not supported, only PIL and "
+                            + "Pygame (assuming those libraries are installed)."
+                             )
+
+if _want:
+    if _want == 'pygame':
+        from gheat import pygame_ as backend
+    elif _want == 'pil':
+        from gheat import pil_ as backend
+    BACKEND = _want
+else:
+    try:
+        from gheat import pygame_ as backend
+        BACKEND = 'pygame'
+    except ImportError:
+        try:
+            from gheat import pil_ as backend
+            BACKEND = 'pil'
+        except ImportError:
+            pass
+    
+    if BACKEND is None:
+        raise ImportError("Neither Pygame nor PIL could be imported.")
+
+BACKEND_PYGAME = BACKEND == 'pygame'
+BACKEND_PIL = BACKEND == 'pil'
+
+log.info("Using the %s library" % BACKEND)
+
+
+# Set up color schemes and dots.
+# ==============================
+
+color_schemes = dict()          # this is used below
+_color_schemes_dir = os.path.join(aspen.paths.__, 'etc', 'color-schemes')
+for fname in os.listdir(_color_schemes_dir):
+    if not fname.endswith('.png'):
+        continue
+    name = os.path.splitext(fname)[0]
+    fspath = os.path.join(_color_schemes_dir, fname)
+    color_schemes[name] = backend.ColorScheme(name, fspath)
+
+def load_dots(backend):
+    """Given a backend module, return a mapping of zoom level to Dot object.
+    """
+    return dict([(zoom, backend.Dot(zoom)) for zoom in range(MAX_ZOOM)])
+dots = load_dots(backend) # factored for easier use from scripts
+
+
+# Main WSGI callable 
+# ==================
+
+ROOT = aspen.paths.root
+
+def wsgi(environ, start_response):
+    path = environ['PATH_INFO']
+    fspath = translate(ROOT, path)
+
+    if path.endswith('.png') and 'empties' not in path: 
+                        # let people hit empties directly if they want; why not?
+
+
+        # Parse and validate input.
+        # =========================
+        # URL paths are of the form:
+        #
+        #   /<color_scheme>/<zoom>/<x>,<y>.png
+        #
+        # E.g.:
+        #
+        #   /classic/3/0,1.png
+
+        raw = path[:-4] # strip extension
+        try:
+            assert raw.count('/') == 3, "%d /'s" % raw.count('/')
+            foo, color_scheme, zoom, xy = raw.split('/')
+            assert color_scheme in color_schemes, ( "bad color_scheme: "
+                                                  + color_scheme
+                                                   )
+            assert xy.count(',') == 1, "%d /'s" % xy.count(',')
+            x, y = xy.split(',')
+            assert zoom.isdigit() and x.isdigit() and y.isdigit(), "not digits"
+            zoom = int(zoom)
+            x = int(x)
+            y = int(y)
+            assert 0 <= zoom <= 30, "bad zoom: %d" % zoom
+        except AssertionError, err:
+            log.warn(err.args[0])
+            start_response('400 Bad Request', [('CONTENT-TYPE','text/plain')])
+            return ['Bad request.']
+
+
+        # Build and save the file.
+        # ========================
+        # The tile that is built here will be served by the static handler.
+
+        color_scheme = color_schemes[color_scheme]
+        tile = backend.Tile(color_scheme, dots, zoom, x, y, fspath)
+        if tile.is_empty():
+            log.info('serving empty tile %s' % path)
+            fspath = color_scheme.get_empty_fspath(zoom)
+        elif tile.is_stale() or ALWAYS_BUILD:
+            log.info('rebuilding %s' % path)
+            tile.rebuild()
+            tile.save()
+        else:
+            log.info('serving cached tile %s' % path)
+
+
+    environ['PATH_TRANSLATED'] = fspath
+    return static_handler(environ, start_response)
+
+
Index: /src/gheat/__/lib/python/gheat/base.py
===================================================================
--- /src/gheat/__/lib/python/gheat/base.py	(revision 8853)
+++ /src/gheat/__/lib/python/gheat/base.py	(revision 8853)
@@ -0,0 +1,289 @@
+import datetime
+import os
+import stat
+
+import aspen
+try:
+    from aspen import restarter     # v0.8
+except ImportError:
+    from aspen.ipc import restarter # trunk (v0.9?)
+import gheat
+import gheat.opacity
+import gmerc
+from gheat import BUILD_EMPTIES, DIRMODE, SIZE, log
+
+
+class ColorScheme(object):
+    """Base class for color scheme representations.
+    """
+
+    def __init__(self, name, fspath):
+        """Takes the name and filesystem path of the defining PNG.
+        """
+        if aspen.mode.DEVDEB:
+            restarter.track(fspath)
+        self.hook_set(fspath)
+        self.empties_dir = os.path.join(aspen.paths.root, name, 'empties')
+        self.build_empties()
+
+
+    def build_empties(self):
+        """Build empty tiles for this color scheme.
+        """
+        empties_dir = self.empties_dir
+
+        if not BUILD_EMPTIES:
+            log.info("not building empty tiles for %s" % name)
+        else:    
+            if not os.path.isdir(empties_dir):
+                os.makedirs(empties_dir, DIRMODE)
+            if not os.access(empties_dir, os.R_OK|os.W_OK|os.X_OK):
+                raise ConfigurationError( "Permissions too restrictive on "
+                                        + "empties directory "
+                                        + "(%s)." % empties_dir
+                                         )
+            for fname in os.listdir(empties_dir):
+                if fname.endswith('.png'):
+                    os.remove(os.path.join(empties_dir, fname))
+            for zoom, opacity in gheat.opacity.zoom_to_opacity.items():
+                fspath = os.path.join(empties_dir, str(zoom)+'.png')
+                self.hook_build_empty(opacity, fspath)
+            
+            log.info("building empty tiles in %s" % empties_dir)
+
+
+    def get_empty_fspath(self, zoom):
+        fspath = os.path.join(self.empties_dir, str(zoom)+'.png')
+        if not os.path.isfile(fspath):
+            self.build_empties() # so we can rebuild empties on the fly
+        return fspath
+
+
+    def hook_set(self):
+        """Set things that your backend will want later.
+        """
+        raise NotImplementedError
+
+
+    def hook_build_empty(self, opacity, fspath):
+        """Given an opacity and a path, save an empty tile.
+        """
+        raise NotImplementedError
+
+
+class Dot(object):
+    """Base class for dot representations.
+
+    Unlike color scheme, the same basic external API works for both backends. 
+    How we compute that API is different, though.
+
+    """
+
+    def __init__(self, zoom):
+        """Takes a zoom level.
+        """
+        name = 'dot%d.png' % zoom
+        fspath = os.path.join(aspen.paths.__, 'etc', 'dots', name)
+        self.img, self.half_size = self.hook_get(fspath)
+        
+    def hook_get(self, fspath):
+        """Given a filesystem path, return two items.
+        """
+        raise NotImplementedError
+
+
+class Tile(object):
+    """Base class for tile representations.
+    """
+
+    img = None
+
+    def __init__(self, color_scheme, dots, zoom, x, y, fspath):
+        """x and y are tile coords per Google Maps.
+        """
+
+        # Calculate some things.
+        # ======================
+
+        dot = dots[zoom]
+
+
+        # Translate tile to pixel coords.
+        # -------------------------------
+
+        x1 = x * SIZE
+        x2 = x1 + 255
+        y1 = y * SIZE
+        y2 = y1 + 255
+    
+    
+        # Expand bounds by one-half dot width.
+        # ------------------------------------
+    
+        x1 = x1 - dot.half_size
+        x2 = x2 + dot.half_size
+        y1 = y1 - dot.half_size
+        y2 = y2 + dot.half_size
+        expanded_size = (x2-x1, y2-y1)
+    
+    
+        # Translate new pixel bounds to lat/lng.
+        # --------------------------------------
+    
+        n, w = gmerc.px2ll(x1, y1, zoom)
+        s, e = gmerc.px2ll(x2, y2, zoom)
+
+
+        # Save
+        # ====
+
+        self.dot = dot.img
+        self.pad = dot.half_size
+
+        self.x = x
+        self.y = y
+
+        self.x1 = x1
+        self.y1 = y1
+
+        self.x2 = x2
+        self.y2 = y2
+
+        self.expanded_size = expanded_size
+        self.llbound = (n,s,e,w)
+        self.zoom = zoom
+        self.fspath = fspath
+        self.opacity = gheat.opacity.zoom_to_opacity[zoom]
+        self.color_scheme = color_scheme
+  
+
+    def is_empty(self):
+        """With attributes set on self, return a boolean.
+
+        Calc lat/lng bounds of this tile (include half-dot-width of padding)
+        SELECT count(uid) FROM points
+
+        """
+        points = gheat.get_cursor() 
+        points = points.execute("""
+    
+            SELECT count(uid)
+              FROM points
+             WHERE lat <= ?
+               AND lat >= ?
+               AND lng <= ?
+               AND lng >= ?
+    
+            """, self.llbound)
+    
+        numpoints = points.fetchone()[0] # this is guaranteed to exist, right?
+        return numpoints == 0
+
+
+    def is_stale(self):
+        """With attributes set on self, return a boolean.
+
+        Calc lat/lng bounds of this tile (include half-dot-width of padding)
+        SELECT count(uid) FROM points WHERE modtime < modtime_tile
+
+        """
+        if not os.path.isfile(self.fspath):
+            return True
+   
+        timestamp = os.stat(self.fspath)[stat.ST_MTIME]
+        modtime = datetime.datetime.fromtimestamp(timestamp)
+    
+        points = gheat.get_cursor() 
+        points = points.execute("""
+    
+            SELECT count(uid)
+              FROM points
+             WHERE lat <= ?
+               AND lat >= ?
+               AND lng <= ?
+               AND lng >= ?
+    
+             AND modtime > ?
+    
+            """, self.llbound + (modtime,))
+    
+        numpoints = points.fetchone()[0] # this is guaranteed to exist, right?
+        return numpoints > 0
+
+
+    def rebuild(self):
+        """Rebuild the image at self.img. Real work delegated to subclasses.
+        """
+
+        # Calculate points.
+        # =================
+        # Build a closure that gives us the x,y pixel coords of the points
+        # to be included on this tile, relative to the top-left of the tile.
+
+        _points = gheat.get_cursor()
+        _points.execute("""
+
+            SELECT *
+              FROM points
+             WHERE lat <= ?
+               AND lat >= ?
+               AND lng <= ?
+               AND lng >= ?
+
+        """, self.llbound)
+   
+        def points():
+            """Yield x,y pixel coords within this tile, top-left of dot.
+            """
+            for point in _points:
+                x, y = gmerc.ll2px(point['lat'], point['lng'], self.zoom)
+                x = x - self.x1 # account for tile offset relative to 
+                y = y - self.y1 #  overall map
+                yield x-self.pad,y-self.pad
+
+
+        # Main logic
+        # ==========
+        # Hand off to the subclass to actually build the image, then come back 
+        # here to maybe create a directory before handing back to the backend
+        # to actually write to disk.
+
+        self.img = self.hook_rebuild(points())
+
+        dirpath = os.path.dirname(self.fspath)
+        if dirpath and not os.path.isdir(dirpath):
+            os.makedirs(dirpath, DIRMODE)
+
+
+    def hook_rebuild(self, points, opacity):
+        """Rebuild and save the file using the current library.
+
+        The algorithm runs something like this:
+
+            o start a tile canvas/image that is a dots-worth oversized
+            o loop through points and multiply dots on the tile
+            o trim back down to straight tile size
+            o invert/colorize the image
+            o make it transparent
+
+        Return the img object; it will be sent back to hook_save after a
+        directory is made if needed.
+
+        Trim after looping because we multiply is the only step that needs the
+        extra information.
+
+        The coloring and inverting can happen in the same pixel manipulation 
+        because you can invert colors.png. That is a 1px by 256px PNG that maps
+        grayscale values to color values. You can customize that file to change
+        the coloration.
+
+        """
+        raise NotImplementedError
+
+
+    def save(self):
+        """Write the image at self.img to disk.
+        """
+        raise NotImplementedError
+
+
Index: /src/gheat/__/lib/python/gheat/opacity.py
===================================================================
--- /src/gheat/__/lib/python/gheat/opacity.py	(revision 8853)
+++ /src/gheat/__/lib/python/gheat/opacity.py	(revision 8853)
@@ -0,0 +1,55 @@
+OPAQUE = 255
+TRANSPARENT = 0
+
+
+def _build_zoom_mapping(conf=None, MAX_ZOOM=31):
+    """Build and return the zoom_to_opacity mapping
+
+    This is a mapping of zoom levels to opacity levels. It is applied in 
+    addition to any per-pixel alpha from the color scheme.
+
+    """
+    if conf is None:
+        from gheat import MAX_ZOOM, conf # won't use these in testing
+
+
+    # Read and validate configuration.
+    # ================================
+
+    zoom_opaque = conf.get('zoom_opaque', '-15')
+    try:
+        zoom_opaque = int(zoom_opaque)
+    except ValueError:
+        raise ConfigurationError("zoom_opaque must be an integer.")
+    
+    zoom_transparent = conf.get('zoom_transparent', '15')
+    try:
+        zoom_transparent = int(zoom_transparent)
+    except ValueError:
+        raise ConfigurationError("zoom_transparent must be an integer.")
+
+
+
+    # Build the mapping.
+    # ==================
+
+    num_opacity_steps = zoom_transparent - zoom_opaque
+    zoom_to_opacity = dict()
+    if num_opacity_steps < 1:               # don't want general fade
+        for zoom in range(0, MAX_ZOOM + 1):
+            zoom_to_opacity[zoom] = None 
+    else:                                   # want general fade
+        opacity_step = OPAQUE / float(num_opacity_steps) # chunk of opacity
+        for zoom in range(0, MAX_ZOOM + 1):
+            if zoom <= zoom_opaque:
+                opacity = OPAQUE 
+            elif zoom >= zoom_transparent:
+                opacity = TRANSPARENT
+            else:
+                opacity = int(OPAQUE - ((zoom - zoom_opaque) * opacity_step))
+            zoom_to_opacity[zoom] = opacity
+
+    return zoom_to_opacity
+
+zoom_to_opacity = _build_zoom_mapping()
+
Index: /src/gheat/__/lib/python/gheat/pil_.py
===================================================================
--- /src/gheat/__/lib/python/gheat/pil_.py	(revision 8853)
+++ /src/gheat/__/lib/python/gheat/pil_.py	(revision 8853)
@@ -0,0 +1,100 @@
+import os
+
+from PIL import Image, ImageChops
+from gheat import SIZE, base
+from gheat.opacity import OPAQUE
+
+
+class ColorScheme(base.ColorScheme):
+
+    def hook_set(self, fspath):
+        self.colors = Image.open(fspath).load()
+
+    def hook_build_empty(self, opacity, fspath):
+        color = self.colors[0, 255]
+        if len(color) == 4: # color map has per-pixel alpha
+            (conf, pixel) = opacity, color[3] 
+            opacity = int(( (conf/255.0)    # from configuration
+                          * (pixel/255.0)   # from per-pixel alpha
+                           ) * 255)
+        color = color[:3] + (opacity,)
+        tile = Image.new('RGBA', (SIZE, SIZE), color)
+        tile.save(fspath, 'PNG')
+
+
+class Dot(base.Dot):
+    def hook_get(self, fspath):
+        img = Image.open(fspath)
+        half_size = img.size[0] / 2
+        return img, half_size 
+
+
+class Tile(base.Tile):
+    """Represent a tile; use the PIL backend.
+    """
+
+    def hook_rebuild(self, points):
+        """Given a list of points and an opacity, save a tile.
+    
+        This uses the PIL backend.
+    
+        """
+        tile = self._start()
+        tile = self._add_points(tile, points)
+        tile = self._trim(tile)
+        foo  = self._colorize(tile) # returns None
+        return tile
+
+
+    def _start(self):
+        return Image.new('RGBA', self.expanded_size, 'white')
+
+
+    def _add_points(self, tile, points):
+        for x,y in points:
+            dot_placed = Image.new('RGBA', self.expanded_size, 'white')
+            dot_placed.paste(self.dot, (x, y))
+            tile = ImageChops.multiply(tile, dot_placed)
+        return tile
+  
+
+    def _trim(self, tile):
+        tile = tile.crop((self.pad, self.pad, SIZE+self.pad, SIZE+self.pad))
+        tile = ImageChops.duplicate(tile) # converts ImageCrop => Image
+        return tile
+
+
+    def _colorize(self, tile):
+        _computed_opacities = dict()
+        pix = tile.load() # Image => PixelAccess
+        for x in range(SIZE):
+            for y in range(SIZE):
+
+                # Get color for this intensity
+                # ============================
+                # is a value 
+                
+                val = self.color_scheme.colors[0, pix[x,y][0]]
+                try:
+                    pix_alpha = val[3] # the color image has transparency
+                except IndexError:
+                    pix_alpha = OPAQUE # it doesn't
+                
+
+                # Blend the opacities
+                # ===================
+
+                conf, pixel = self.opacity, pix_alpha
+                if (conf, pixel) not in _computed_opacities:
+                    opacity = int(( (conf/255.0)    # from configuration
+                                  * (pixel/255.0)   # from per-pixel alpha
+                                   ) * 255)
+                    _computed_opacities[(conf, pixel)] = opacity
+                
+                pix[x,y] = val[:3] + (_computed_opacities[(conf, pixel)],)
+
+    
+    def save(self):
+        self.img.save(self.fspath, 'PNG')
+
+
Index: /src/gheat/__/lib/python/gheat/pygame_.py
===================================================================
--- /src/gheat/__/lib/python/gheat/pygame_.py	(revision 8853)
+++ /src/gheat/__/lib/python/gheat/pygame_.py	(revision 8853)
@@ -0,0 +1,143 @@
+import os
+
+import numpy
+import pygame
+from gheat import SIZE, base
+
+
+WHITE = (255, 255, 255)
+
+
+# Needed for colors
+# =================
+# 
+#   http://www.pygame.org/wiki/HeadlessNoWindowsNeeded 
+# 
+# Beyond what is said there, also set the color depth to 32 bits.
+
+os.environ['SDL_VIDEODRIVER'] = 'dummy'
+pygame.display.init()
+pygame.display.set_mode((1,1), 0, 32)
+
+
+class ColorScheme(base.ColorScheme):
+
+    def hook_set(self, fspath):
+        colors = pygame.image.load(fspath)
+        self.colors = colors = colors.convert_alpha()
+        self.color_map = pygame.surfarray.pixels3d(colors)[0] 
+        self.alpha_map = pygame.surfarray.pixels_alpha(colors)[0]
+
+    def hook_build_empty(self, opacity, fspath):
+        tile = pygame.Surface((SIZE,SIZE), pygame.SRCALPHA, 32)
+        tile.fill(self.color_map[255])
+        tile.convert_alpha()
+
+        (conf, pixel) = opacity, self.alpha_map[255]
+        opacity = int(( (conf/255.0)    # from configuration
+                      * (pixel/255.0)   # from per-pixel alpha
+                       ) * 255)
+
+        pygame.surfarray.pixels_alpha(tile)[:,:] = opacity 
+        pygame.image.save(tile, fspath)
+
+
+class Dot(base.Dot):
+    def hook_get(self, fspath):
+        img = pygame.image.load(fspath)
+        half_size = img.get_size()[0] / 2
+        return img, half_size
+
+
+class Tile(base.Tile):
+
+    def hook_rebuild(self, points):
+        """Given a list of points, save a tile.
+    
+        This uses the Pygame backend.
+   
+        Good surfarray tutorial (old but still applies):
+
+            http://www.pygame.org/docs/tut/surfarray/SurfarrayIntro.html
+
+        Split out to give us better profiling granularity.
+
+        """
+        tile = self._start()
+        tile = self._add_points(tile, points)
+        tile = self._trim(tile)
+        tile = self._colorize(tile)
+        return tile
+
+
+    def _start(self):
+        tile = pygame.Surface(self.expanded_size, 0, 32)
+        tile.fill(WHITE)
+        return tile
+        #@ why do we get green after this step?
+ 
+       
+    def _add_points(self, tile, points):
+        for dest in points:
+            tile.blit(self.dot, dest, None, pygame.BLEND_MULT)
+        return tile
+
+
+    def _trim(self, tile):
+        tile = tile.subsurface(self.pad, self.pad, SIZE, SIZE).copy()
+        #@ pygame.transform.chop says this or blit; this is plenty fast 
+        return tile
+
+
+    def _colorize(self, tile):
+
+        # Invert/colorize
+        # ===============
+        # The way this works is that we loop through all pixels in the image,
+        # and set their color and their transparency based on an index image.
+        # The index image can be as wide as we want; we only look at the first
+        # column of pixels. This first column is considered a mapping of 256
+        # gray-scale intensity values to color/alpha.
+
+        # Optimized: I had the alpha computation in a separate function because 
+        # I'm also using it above in ColorScheme (cause I couldn't get set_alpha
+        # working). The inner loop runs 65536 times, and just moving the 
+        # computation out of a function and inline into the loop sped things up 
+        # about 50%. It sped it up another 50% to cache the values, since each
+        # of the 65536 variables only ever takes one of 256 values. Not super
+        # fast still, but more reasonable (1.5 seconds instead of 12).
+        #
+        # I would expect that precomputing the dictionary at start-up time 
+        # should give us another boost, but it slowed us down again. Maybe 
+        # since with precomputation we have to calculate more than we use, the 
+        # size of the dictionary made a difference? Worth exploring ...
+
+        _computed_opacities = dict()
+
+        tile = tile.convert_alpha(self.color_scheme.colors)
+        tile.lock()
+        pix = pygame.surfarray.pixels3d(tile)
+        alp = pygame.surfarray.pixels_alpha(tile)
+        for x in range(SIZE):
+            for y in range(SIZE):
+                key = pix[x,y,0]
+
+                conf, pixel = self.opacity, self.color_scheme.alpha_map[key]
+                if (conf, pixel) not in _computed_opacities:
+                    opacity = int(( (conf/255.0)    # from configuration
+                                  * (pixel/255.0)   # from per-pixel alpha
+                                   ) * 255)
+                    _computed_opacities[(conf, pixel)] = opacity
+
+                pix[x,y] = self.color_scheme.color_map[key]
+                alp[x,y] = _computed_opacities[(conf, pixel)]
+
+        tile.unlock()
+   
+        return tile
+
+
+    def save(self):
+        pygame.image.save(self.img, self.fspath)
+
+
Index: /src/gheat/__/lib/python/gheat/tests/test_opacity.py
===================================================================
--- /src/gheat/__/lib/python/gheat/tests/test_opacity.py	(revision 8853)
+++ /src/gheat/__/lib/python/gheat/tests/test_opacity.py	(revision 8853)
@@ -0,0 +1,168 @@
+from gheat.opacity import _build_zoom_mapping 
+
+
+def fixed(d):
+    """Given a dictionary, return a guaranteed-order list of tuples.
+    """
+    return [(k,v) for k,v in sorted(d.items())]
+
+
+def test_basic():
+    conf = dict()
+    conf['zoom_opaque'] = '0'
+    conf['zoom_transparent'] = '4'
+    expected = [ (0,255)
+               , (1,191)
+               , (2,127)
+               , (3,63)
+               , (4,0)
+                ]
+    actual = fixed(_build_zoom_mapping(conf, 4))
+    assert actual == expected, actual
+
+def test_unclean():
+    conf = dict()
+    conf['zoom_opaque'] = '0'
+    conf['zoom_transparent'] = '5'
+    expected = [ (0,255)
+               , (1,204)
+               , (2,153)
+               , (3,102)
+               , (4,51)
+               , (5,0)
+                ]
+    actual = fixed(_build_zoom_mapping(conf, 5))
+    assert actual == expected, actual
+
+"""
+
+Test these situations:
+
+ 1. equal           [(-----------)]
+ 2. aligned left    [(-------)xxxx]
+ 3. aligned right   [xxxx(-------)]
+ 4. over both     (-[-------------]-)
+ 5. over left     (-[--------)xxxx]
+ 6.               (-[------------)]
+ 7. over right      [xxxx(--------]-)
+ 8.                 [(------------]-)
+ 9. smaller         [x(-------)xxx]
+
+"""
+
+def test_1(): # [(-----------)]
+    pass # taken care of above in _basic and _unclean
+
+def test_2(): # [(-------)xxxx]
+    conf = dict()
+    conf['zoom_opaque'] = '0'
+    conf['zoom_transparent'] = '4'
+    expected = [ (0,255)
+               , (1,191)
+               , (2,127)
+               , (3,63)
+               , (4,0)
+               , (5,0)
+               , (6,0)
+                ]
+    actual = fixed(_build_zoom_mapping(conf, 6))
+    assert actual == expected, actual
+
+def test_3(): # [xxxx(-------)]
+    conf = dict()
+    conf['zoom_opaque'] = '2'
+    conf['zoom_transparent'] = '6'
+    expected = [ (0,255)
+               , (1,255)
+               , (2,255)
+               , (3,191)
+               , (4,127)
+               , (5,63)
+               , (6,0)
+                ]
+    actual = fixed(_build_zoom_mapping(conf, 6))
+    assert actual == expected, actual
+
+def test_4(): # (-[-------------]-)
+    conf = dict()
+    conf['zoom_opaque'] = '-1'
+    conf['zoom_transparent'] = '4'
+    expected = [ (0,204)
+               , (1,153)
+               , (2,102)
+               , (3,51)
+                ]
+    actual = fixed(_build_zoom_mapping(conf, 3))
+    assert actual == expected, actual
+
+def test_5(): # (-[--------)xxxx]
+    conf = dict()
+    conf['zoom_opaque'] = '-1'
+    conf['zoom_transparent'] = '4'
+    expected = [ (0,204)
+               , (1,153)
+               , (2,102)
+               , (3,51)
+               , (4,0)
+               , (5,0)
+               , (6,0)
+                ]
+    actual = fixed(_build_zoom_mapping(conf, 6))
+    assert actual == expected, actual
+
+def test_6(): # (-[------------)]
+    conf = dict()
+    conf['zoom_opaque'] = '-1'
+    conf['zoom_transparent'] = '4'
+    expected = [ (0,204)
+               , (1,153)
+               , (2,102)
+               , (3,51)
+               , (4,0)
+                ]
+    actual = fixed(_build_zoom_mapping(conf, 4))
+    assert actual == expected, actual
+
+def test_7(): # [xxxx(--------]-)
+    conf = dict()
+    conf['zoom_opaque'] = '2'
+    conf['zoom_transparent'] = '6'
+    expected = [ (0,255)
+               , (1,255)
+               , (2,255)
+               , (3,191)
+               , (4,127)
+                ]
+    actual = fixed(_build_zoom_mapping(conf, 4))
+    assert actual == expected, actual
+
+def test_8(): # [(------------]-)
+    conf = dict()
+    conf['zoom_opaque'] = '0'
+    conf['zoom_transparent'] = '5'
+    expected = [ (0,255)
+               , (1,204)
+               , (2,153)
+               , (3,102)
+                ]
+    actual = fixed(_build_zoom_mapping(conf, 3))
+    assert actual == expected, actual
+
+def test_9(): # [x(-------)xxx]
+    conf = dict()
+    conf['zoom_opaque'] = '2'
+    conf['zoom_transparent'] = '6'
+    expected = [ (0,255)
+               , (1,255)
+               , (2,255)
+               , (3,191)
+               , (4,127)
+               , (5,63)
+               , (6,0)
+               , (7,0)
+               , (8,0)
+               , (9,0)
+                ]
+    actual = fixed(_build_zoom_mapping(conf, 9))
+    assert actual == expected, actual
+
Index: /src/gheat/__/lib/python/gmerc.py
===================================================================
--- /src/gheat/__/lib/python/gmerc.py	(revision 8853)
+++ /src/gheat/__/lib/python/gmerc.py	(revision 8853)
@@ -0,0 +1,121 @@
+"""This is a port of Google's GMercatorProjection.fromLatLngToPixel.
+
+Doco on the original:
+
+  http://code.google.com/apis/maps/documentation/reference.html#GMercatorProjection
+
+
+Here's how I ported it:
+
+  http://blag.whit537.org/2007/07/how-to-hack-on-google-maps.html
+
+
+The goofy variable names below are an artifact of Google's javascript
+obfuscation.
+
+"""
+import math
+
+
+# Constants
+# =========
+# My knowledge of what these mean is undefined.
+
+CBK = [128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648, 4294967296, 8589934592, 17179869184, 34359738368, 68719476736, 137438953472]
+CEK = [0.7111111111111111, 1.4222222222222223, 2.8444444444444446, 5.688888888888889, 11.377777777777778, 22.755555555555556, 45.51111111111111, 91.02222222222223, 182.04444444444445, 364.0888888888889, 728.1777777777778, 1456.3555555555556, 2912.711111111111, 5825.422222222222, 11650.844444444445, 23301.68888888889, 46603.37777777778, 93206.75555555556, 186413.51111111112, 372827.02222222224, 745654.0444444445, 1491308.088888889, 2982616.177777778, 5965232.355555556, 11930464.711111112, 23860929.422222223, 47721858.844444446, 95443717.68888889, 190887435.37777779, 381774870.75555557, 763549741.5111111]
+CFK = [40.74366543152521, 81.48733086305042, 162.97466172610083, 325.94932345220167, 651.8986469044033, 1303.7972938088067, 2607.5945876176133, 5215.189175235227, 10430.378350470453, 20860.756700940907, 41721.51340188181, 83443.02680376363, 166886.05360752725, 333772.1072150545, 667544.214430109, 1335088.428860218, 2670176.857720436, 5340353.715440872, 10680707.430881744, 21361414.86176349, 42722829.72352698, 85445659.44705395, 170891318.8941079, 341782637.7882158, 683565275.5764316, 1367130551.1528633, 2734261102.3057265, 5468522204.611453, 10937044409.222906, 21874088818.445812, 43748177636.891624]
+
+
+def ll2px(lat, lng, zoom):
+    """Given two floats and an int, return a 2-tuple of ints.
+
+    Note that the pixel coordinates are tied to the entire map, not to the map
+    section currently in view.
+
+    """
+    assert isinstance(lat, (float, int, long)), \
+        ValueError("lat must be a float")
+    lat = float(lat)
+    assert isinstance(lng, (float, int, long)), \
+        ValueError("lng must be a float")
+    lng = float(lng)
+    assert isinstance(zoom, int), TypeError("zoom must be an int from 0 to 30")
+    assert 0 <= zoom <= 30, ValueError("zoom must be an int from 0 to 30")
+
+    cbk = CBK[zoom]
+
+    x = int(round(cbk + (lng * CEK[zoom])))
+
+    foo = math.sin(lat * math.pi / 180)
+    if foo < -0.9999:
+        foo = -0.9999
+    elif foo > 0.9999:
+        foo = 0.9999
+
+    y = int(round(cbk + (0.5 * math.log((1+foo)/(1-foo)) * (-CFK[zoom]))))
+
+    return (x, y)
+
+
+
+def px2ll(x, y, zoom):
+    """Given three ints, return a 2-tuple of floats.
+
+    Note that the pixel coordinates are tied to the entire map, not to the map
+    section currently in view.
+
+    """
+    assert isinstance(x, (int, long)), \
+        ValueError("px must be a 2-tuple of ints")
+    assert isinstance(y, (int, long)), \
+        ValueError("px must be a 2-tuple of ints")
+    assert isinstance(zoom, int), TypeError("zoom must be an int from 0 to 30")
+    assert 0 <= zoom <= 30, ValueError("zoom must be an int from 0 to 30")
+
+    foo = CBK[zoom]
+    lng = (x - foo) / CEK[zoom]
+    bar = (y - foo) / -CFK[zoom]
+    blam = 2 * math.atan(math.exp(bar)) - math.pi / 2
+    lat = blam / (math.pi / 180)
+
+    return (lat, lng)
+
+
+if __name__ == '__main__':
+
+    # Tests
+    # =====
+    # The un-round numbers were gotten by calling Google's js function.
+
+    data = [ (3, 39.81447, -98.565388, 463, 777)
+           , (3, 40.609538, -80.224528, 568, 771)
+
+           , (0, -90, 180, 256, 330)
+           , (0, -90, -180, 0, 330)
+           , (0, 90, 180, 256, -74)
+           , (0, 90, -180, 0, -74)
+
+           , (1, -90, 180, 512, 660)
+           , (1, -90, -180, 0, 660)
+           , (1, 90, 180, 512, -148)
+           , (1, 90, -180, 0, -148)
+
+           , (2, -90, 180, 1024, 1319)
+           , (2, -90, -180, 0, 1319)
+           , (2, 90, 180, 1024, -295)
+           , (2, 90, -180, 0, -295)
+
+            ]
+
+    def close(floats, floats2):
+        """Compare two sets of floats.
+        """
+        lat_actual = abs(floats[0] - floats2[0])
+        lng_actual = abs(floats[1] - floats2[1])
+        assert lat_actual < 1, (floats[0], floats2[0])
+        assert lng_actual < 1, (floats[1], floats2[1])
+        return True
+
+    for zoom, lat, lng, x, y in data:
+        assert ll2px(lat, lng, zoom) == (x, y), (lat, lng)
+        assert close(px2ll(x, y, zoom), (lat, lng)), (x, y)
Index: /src/gheat/__/lib/python/httpy.py
===================================================================
--- /src/gheat/__/lib/python/httpy.py	(revision 8853)
+++ /src/gheat/__/lib/python/httpy.py	(revision 8853)
@@ -0,0 +1,161 @@
+"""Super-light WSGI framework to allow returning a string or Response object.
+
+The request side of WSGI--the "commons" of the environ mapping--is quite
+nice. It honors the tradition of CGI, and it's just a mapping. Simple.
+
+The response-side API is a little stiffer, because WSGI has to support edge
+cases like serving large files, complex exception handling, and HTTP/1.1
+features. This results in warts like start_response, and the requirement
+that apps return an iterable. The intention is that these warts be smoothed
+over at other layers, and that's what we're doing here.
+
+Apps below this shim may speak plain WSGI, but they may also return a
+string, which will be sent back as text/html. They may also return or raise
+a Response object.
+
+"""
+__author__ = "Chad Whitacre <chad@zetaweb.com>"
+__version__ = "~~VERSION~~"
+__all__ = ('Responder', 'Response')
+
+
+import BaseHTTPServer
+from email.Message import Message
+
+
+_responses = BaseHTTPServer.BaseHTTPRequestHandler.responses
+
+
+class Response(StandardError):
+    """Represent an HTTP Response message.
+    """
+
+    def __init__(self, code=200, body='', headers=None):
+        """Takes an int, a string, and a dict.
+
+            - code        an HTTP response code, e.g., 404
+            - body        the message body as a string
+            - headers     a dictionary of HTTP headers (or list of tuples)
+
+        Body is second because one more often wants to specify a body without
+        headers, than a header without a body.
+
+        """
+        if not isinstance(code, int):
+            raise TypeError("'code' must be an integer")
+        elif not isinstance(body, basestring):
+            raise TypeError("'body' must be a string")
+        elif headers is not None and not isinstance(headers, (dict, list)):
+            raise TypeError("'headers' must be a dictionary or a list of " +
+                            "2-tuples")
+
+        StandardError.__init__(self)
+        self.code = code
+        self.body = body
+        self.headers = Message()
+        if headers:
+            if isinstance(headers, dict):
+                headers = headers.items()
+            for k, v in headers:
+                self.headers[k] = v
+
+
+    def __repr__(self):
+        return "<Response: %s>" % str(self)
+
+    def __str__(self):
+        return "%d %s" % (self.code, self._status()[0])
+
+    def _status(self):
+        return _responses.get(self.code, ('???','Unknown HTTP status'))
+
+
+    def __call__(self, environ, start_response):
+        """We ourselves are a WSGI app.
+
+        XXX: WSGI exception handling?
+
+        """
+        _status = self._status()
+
+        status = "%d %s" % (self.code, _status[0])
+        headers = [(str(k), str(v)) for k,v in self.headers.items()]
+        body = [self.body and self.body or _status[1]]
+
+        start_response(status, headers)
+        return body
+
+
+class Responder(object):
+    """WSGI middleware to also allow returning a string or Response object.
+    """
+
+    def __init__(self, app):
+        self.wrapped_app = app
+
+    def __call__(self, environ, start_response):
+        try:
+            response = self.wrapped_app(environ, start_response)
+        except Response, response:
+            pass
+        except:
+            raise
+
+        if isinstance(response, Response):
+            response = response(environ, start_response)
+        elif isinstance(response, basestring):
+            response = Response(200, response)
+            response.headers['Content-Type'] = 'text/html'
+            response = response(environ, start_response)
+
+        return response
+
+
+if __name__ == '__main__':
+    """Simple smoke test.
+
+    Hit http://localhost:8080/ in a web browser after running this script. Only
+    one of the calls to Server can be uncommented or you'll get:
+
+      socket.error: (48, 'Address already in use')
+
+    """
+    from wsgiref.simple_server import make_server # included w/ Python 2.5
+
+    Server = lambda app: make_server('', 8080, app)
+    app = lambda e, s: "Greetings, program!"
+
+    def app2(environ, start_response):
+        return Response( 200, "Greetings, program!"
+                       , {'Content-Type':'text/plain'}
+                        )
+
+    server = Server(Responder(app)) # tests returning a string
+    #server = Server(Responder(app2)) # tests returning a Response
+    #server = Server(app) # unwrapped; raises AssertionError when hit
+
+    server.serve_forever()
+
+
+""" <http://opensource.org/licenses/mit-license.php>
+
+Copyright (c) 2006 Chad Whitacre <chad@zetaweb.com>
+
+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.
+
+"""
Index: /src/gheat/__/var/points.txt
===================================================================
--- /src/gheat/__/var/points.txt	(revision 8853)
+++ /src/gheat/__/var/points.txt	(revision 8853)
@@ -0,0 +1,2588 @@
+9999,52.168831,4.46979
+9998,52.168471,4.468666
+9997,52.16857,4.468644
+9996,52.168649,4.46741
+9995,52.168649,4.46741
+1,52.1406017,4.4584817
+2,52.1406467,4.4585250
+3,52.1406333,4.4585400
+4,52.1406483,4.4585183
+5,52.1406567,4.4585233
+6,52.1406583,4.4585017
+7,52.1405817,4.4585033
+8,52.1405750,4.4584600
+9,52.1405967,4.4585250
+10,52.1406233,4.4586050
+11,52.1406267,4.4586133
+12,52.1406433,4.4586033
+13,52.1406317,4.4585817
+14,52.1406783,4.4586217
+15,52.1406133,4.4585367
+16,52.1406567,4.4584950
+17,52.1406317,4.4584367
+18,52.1406083,4.4584117
+19,52.1406350,4.4585850
+20,52.1406983,4.4586667
+21,52.1406933,4.4581833
+22,52.1407667,4.4582617
+23,52.1407433,4.4583300
+24,52.1407683,4.4583483
+25,52.1407517,4.4583800
+26,52.1407350,4.4583817
+27,52.1407267,4.4583700
+28,52.1407283,4.4583517
+29,52.1407300,4.4583350
+30,52.1407283,4.4583200
+31,52.1407283,4.4583133
+32,52.1407317,4.4583050
+33,52.1407367,4.4582967
+34,52.1407383,4.4582883
+35,52.1407400,4.4582800
+36,52.1407467,4.4582700
+37,52.1407550,4.4582567
+38,52.1407650,4.4582433
+39,52.1407733,4.4582300
+40,52.1407783,4.4582200
+41,52.1407817,4.4582150
+42,52.1407767,4.4582250
+43,52.1407750,4.4582300
+44,52.1407683,4.4582517
+45,52.1407717,4.4582550
+46,52.1407733,4.4582450
+47,52.1407750,4.4582333
+48,52.1407767,4.4582200
+49,52.1407800,4.4582050
+50,52.1407833,4.4582017
+51,52.1407883,4.4581950
+52,52.1407867,4.4582000
+53,52.1407850,4.4582033
+54,52.1407850,4.4582050
+55,52.1407850,4.4582067
+56,52.1407867,4.4582083
+57,52.1407900,4.4582100
+58,52.1407917,4.4582117
+59,52.1407917,4.4582133
+60,52.1407867,4.4582200
+61,52.1407817,4.4582267
+62,52.1407833,4.4582267
+63,52.1407817,4.4582250
+64,52.1407833,4.4582233
+65,52.1407867,4.4582217
+66,52.1407900,4.4582200
+67,52.1407917,4.4582183
+68,52.1407917,4.4582200
+69,52.1407933,4.4582183
+70,52.1407967,4.4582150
+71,52.1408000,4.4582133
+72,52.1408033,4.4582100
+73,52.1408067,4.4582067
+74,52.1408117,4.4582017
+75,52.1408133,4.4582000
+76,52.1408150,4.4581967
+77,52.1408150,4.4581933
+78,52.1408167,4.4581933
+79,52.1408167,4.4581917
+80,52.1408183,4.4581900
+81,52.1408200,4.4581900
+82,52.1408217,4.4581883
+83,52.1408233,4.4581867
+84,52.1408233,4.4581850
+85,52.1408250,4.4581833
+86,52.1408233,4.4581817
+87,52.1408217,4.4581817
+88,52.1408217,4.4581833
+89,52.1408200,4.4581833
+90,52.1408200,4.4581850
+91,52.1408183,4.4581850
+92,52.1408200,4.4581867
+93,52.1408217,4.4581867
+94,52.1408233,4.4581883
+95,52.1408217,4.4581917
+96,52.1408200,4.4581917
+97,52.1408183,4.4581917
+98,52.1408067,4.4582000
+99,52.1407983,4.4582050
+100,52.1407900,4.4582083
+101,52.1407850,4.4582133
+102,52.1407817,4.4582217
+103,52.1407783,4.4582283
+104,52.1407767,4.4582333
+105,52.1407767,4.4582350
+106,52.1407767,4.4582383
+107,52.1407767,4.4582400
+108,52.1407767,4.4582433
+109,52.1407767,4.4582450
+110,52.1407750,4.4582467
+111,52.1407900,4.4582300
+112,52.1407883,4.4582317
+113,52.1407867,4.4582333
+114,52.1407850,4.4582350
+115,52.1407833,4.4582367
+116,52.1407817,4.4582333
+117,52.1407833,4.4582317
+118,52.1407850,4.4582283
+119,52.1408200,4.4581950
+120,52.1408300,4.4581917
+121,52.1408267,4.4582000
+122,52.1408233,4.4582017
+123,52.1408200,4.4582017
+124,52.1408183,4.4582033
+125,52.1408150,4.4582050
+126,52.1408133,4.4582050
+127,52.1408250,4.4582167
+128,52.1408367,4.4582350
+129,52.1408333,4.4582367
+130,52.1408283,4.4582383
+131,52.1408217,4.4582400
+132,52.1408167,4.4582417
+133,52.1408117,4.4582417
+134,52.1408067,4.4582433
+135,52.1407850,4.4582500
+136,52.1407733,4.4582500
+137,52.1407800,4.4582517
+138,52.1407850,4.4582517
+139,52.1407817,4.4582517
+140,52.1407800,4.4582550
+141,52.1407800,4.4582567
+142,52.1407800,4.4582583
+143,52.1407767,4.4582550
+144,52.1407650,4.4582533
+145,52.1407633,4.4582533
+146,52.1407617,4.4582550
+147,52.1407583,4.4582583
+148,52.1407550,4.4582617
+149,52.1407533,4.4582650
+150,52.1407533,4.4582683
+151,52.1407517,4.4582717
+152,52.1407500,4.4582750
+153,52.1407483,4.4582783
+154,52.1407467,4.4582783
+155,52.1407467,4.4582767
+156,52.1407467,4.4582733
+157,52.1407450,4.4582717
+158,52.1407450,4.4582700
+159,52.1407450,4.4582667
+160,52.1407467,4.4582650
+161,52.1407467,4.4582633
+162,52.1407467,4.4582600
+163,52.1407483,4.4582583
+164,52.1407483,4.4582567
+165,52.1407467,4.4582550
+166,52.1407450,4.4582533
+167,52.1407433,4.4582517
+168,52.1407417,4.4582517
+169,52.1407417,4.4582500
+170,52.1407400,4.4582483
+171,52.1407400,4.4582467
+172,52.1407383,4.4582433
+173,52.1407383,4.4582400
+174,52.1407350,4.4582383
+175,52.1407317,4.4582383
+176,52.1407300,4.4582383
+177,52.1407283,4.4582383
+178,52.1407283,4.4582367
+179,52.1407267,4.4582367
+180,52.1407250,4.4582350
+181,52.1407250,4.4582333
+182,52.1407250,4.4582300
+183,52.1407233,4.4582267
+184,52.1407217,4.4582233
+185,52.1407217,4.4582217
+186,52.1407217,4.4582183
+187,52.1407200,4.4582167
+188,52.1407200,4.4582150
+189,52.1407183,4.4582133
+190,52.1407150,4.4582133
+191,52.1407133,4.4582133
+192,52.1407117,4.4582133
+193,52.1407100,4.4582133
+194,52.1407083,4.4582150
+195,52.1407083,4.4582167
+196,52.1407083,4.4582200
+197,52.1407083,4.4582217
+198,52.1407083,4.4582233
+199,52.1407083,4.4582267
+200,52.1407083,4.4582300
+201,52.1407083,4.4582317
+202,52.1407083,4.4582333
+203,52.1407083,4.4582367
+204,52.1407100,4.4582383
+205,52.1407100,4.4582400
+206,52.1407100,4.4582417
+207,52.1407117,4.4582417
+208,52.1407133,4.4582433
+209,52.1407067,4.4582383
+210,52.1407067,4.4582433
+211,52.1407017,4.4582767
+212,52.1407083,4.4582767
+213,52.1407117,4.4582750
+214,52.1407100,4.4582717
+215,52.1407117,4.4582633
+216,52.1407117,4.4582567
+217,52.1407050,4.4582267
+218,52.1407033,4.4582133
+219,52.1407033,4.4582050
+220,52.1407017,4.4582000
+221,52.1407033,4.4581950
+222,52.1407033,4.4581900
+223,52.1407050,4.4581867
+224,52.1407067,4.4581833
+225,52.1407100,4.4581817
+226,52.1407150,4.4581783
+227,52.1407183,4.4581767
+228,52.1407217,4.4581767
+229,52.1407250,4.4581800
+230,52.1407267,4.4581833
+231,52.1407267,4.4581883
+232,52.1407267,4.4581933
+233,52.1407250,4.4582000
+234,52.1407250,4.4582067
+235,52.1407250,4.4582117
+236,52.1407250,4.4582167
+237,52.1407250,4.4582217
+238,52.1407267,4.4582250
+239,52.1407267,4.4582267
+240,52.1407267,4.4582283
+241,52.1407283,4.4582283
+242,52.1407283,4.4582267
+243,52.1407283,4.4582250
+244,52.1407267,4.4582233
+245,52.1407267,4.4582217
+246,52.1407233,4.4582200
+247,52.1407217,4.4582200
+248,52.1407183,4.4582217
+249,52.1407167,4.4582217
+250,52.1407133,4.4582233
+251,52.1407100,4.4582250
+252,52.1407067,4.4582283
+253,52.1407050,4.4582300
+254,52.1407050,4.4582317
+255,52.1407050,4.4582333
+256,52.1407050,4.4582350
+257,52.1407033,4.4582367
+258,52.1407033,4.4582383
+259,52.1407017,4.4582400
+260,52.1407017,4.4582417
+261,52.1407017,4.4582433
+262,52.1407017,4.4582450
+263,52.1407000,4.4582467
+264,52.1406983,4.4582467
+265,52.1406983,4.4582483
+266,52.1406967,4.4582517
+267,52.1406967,4.4582567
+268,52.1406950,4.4582617
+269,52.1406983,4.4582683
+270,52.1407000,4.4582750
+271,52.1407017,4.4582783
+272,52.1407017,4.4582817
+273,52.1407117,4.4582833
+274,52.1407067,4.4582867
+275,52.1407033,4.4582933
+276,52.1407000,4.4583033
+277,52.1406983,4.4583117
+278,52.1406917,4.4583183
+279,52.1406867,4.4583250
+280,52.1406833,4.4583300
+281,52.1406783,4.4583367
+282,52.1406750,4.4583433
+283,52.1406700,4.4583500
+284,52.1406650,4.4583550
+285,52.1406600,4.4583600
+286,52.1406567,4.4583633
+287,52.1406550,4.4583650
+288,52.1406517,4.4583667
+289,52.1406483,4.4583650
+290,52.1406467,4.4583650
+291,52.1406450,4.4583633
+292,52.1406450,4.4583617
+293,52.1406450,4.4583583
+294,52.1406433,4.4583550
+295,52.1406450,4.4583517
+296,52.1406450,4.4583483
+297,52.1406467,4.4583433
+298,52.1406483,4.4583383
+299,52.1406517,4.4583333
+300,52.1406550,4.4583267
+301,52.1406583,4.4583217
+302,52.1406600,4.4583167
+303,52.1406600,4.4583117
+304,52.1406633,4.4583083
+305,52.1406667,4.4583067
+306,52.1406683,4.4583050
+307,52.1406700,4.4583033
+308,52.1406733,4.4583017
+309,52.1406767,4.4583000
+310,52.1406800,4.4582983
+311,52.1406833,4.4582967
+312,52.1406883,4.4582967
+313,52.1406917,4.4582967
+314,52.1406950,4.4582983
+315,52.1406983,4.4582983
+316,52.1407017,4.4582967
+317,52.1407067,4.4582950
+318,52.1407117,4.4582933
+319,52.1407167,4.4582917
+320,52.1407200,4.4582900
+321,52.1407250,4.4582867
+322,52.1407283,4.4582833
+323,52.1407333,4.4582800
+324,52.1407367,4.4582783
+325,52.1407400,4.4582750
+326,52.1407483,4.4582700
+327,52.1407517,4.4582683
+328,52.1407550,4.4582683
+329,52.1407583,4.4582667
+330,52.1407617,4.4582650
+331,52.1407650,4.4582633
+332,52.1407700,4.4582600
+333,52.1407733,4.4582583
+334,52.1407800,4.4582533
+335,52.1407833,4.4582517
+336,52.1407833,4.4582500
+337,52.1407817,4.4582483
+338,52.1407817,4.4582467
+339,52.1407800,4.4582467
+340,52.1407800,4.4582450
+341,52.1407817,4.4582433
+342,52.1407817,4.4582417
+343,52.1407850,4.4582417
+344,52.1407850,4.4582433
+345,52.1407850,4.4582450
+346,52.1407833,4.4582483
+347,52.1407817,4.4582533
+348,52.1407833,4.4582533
+349,52.1407867,4.4582500
+350,52.1407883,4.4582483
+351,52.1407917,4.4582450
+352,52.1407933,4.4582417
+353,52.1407983,4.4582350
+354,52.1408033,4.4582300
+355,52.1408100,4.4582233
+356,52.1408133,4.4582183
+357,52.1408150,4.4582167
+358,52.1408150,4.4582133
+359,52.1408133,4.4582150
+360,52.1408100,4.4582167
+361,52.1408050,4.4582200
+362,52.1408000,4.4582217
+363,52.1407967,4.4582233
+364,52.1407933,4.4582250
+365,52.1407900,4.4582250
+366,52.1407883,4.4582233
+367,52.1407850,4.4582217
+368,52.1407833,4.4582200
+369,52.1407833,4.4582183
+370,52.1407817,4.4582167
+371,52.1407833,4.4582117
+372,52.1407850,4.4582083
+373,52.1407867,4.4582067
+374,52.1407867,4.4582033
+375,52.1407867,4.4582017
+376,52.1407917,4.4581950
+377,52.1407967,4.4581917
+378,52.1408000,4.4581900
+379,52.1408017,4.4581883
+380,52.1408033,4.4581883
+381,52.1408050,4.4581883
+382,52.1408033,4.4581867
+383,52.1408067,4.4581933
+384,52.1408017,4.4581983
+385,52.1408000,4.4582033
+386,52.1408017,4.4582050
+387,52.1408000,4.4582083
+388,52.1407983,4.4582083
+389,52.1407950,4.4582083
+390,52.1407900,4.4582150
+391,52.1407717,4.4582300
+392,52.1407550,4.4582467
+393,52.1407400,4.4582650
+394,52.1407250,4.4582817
+395,52.1407133,4.4582933
+396,52.1407083,4.4583000
+397,52.1407033,4.4583050
+398,52.1407000,4.4583067
+399,52.1406967,4.4583067
+400,52.1406950,4.4583083
+401,52.1406917,4.4583117
+402,52.1406900,4.4583117
+403,52.1406883,4.4583117
+404,52.1406867,4.4583117
+405,52.1406883,4.4583100
+406,52.1406900,4.4583083
+407,52.1407017,4.4583017
+408,52.1407067,4.4582967
+409,52.1407117,4.4582917
+410,52.1407150,4.4582867
+411,52.1407200,4.4582817
+412,52.1407300,4.4582717
+413,52.1407300,4.4582683
+414,52.1407283,4.4582667
+415,52.1407283,4.4582650
+416,52.1407267,4.4582717
+417,52.1407250,4.4582733
+418,52.1407183,4.4582800
+419,52.1407133,4.4582833
+420,52.1407117,4.4582817
+421,52.1407100,4.4582800
+422,52.1407083,4.4582800
+423,52.1407067,4.4582783
+424,52.1407050,4.4582783
+425,52.1407050,4.4582800
+426,52.1407050,4.4582817
+427,52.1407033,4.4582817
+428,52.1407000,4.4582833
+429,52.1406983,4.4582850
+430,52.1406967,4.4582867
+431,52.1406950,4.4582867
+432,52.1406933,4.4582867
+433,52.1406933,4.4582850
+434,52.1406917,4.4582850
+435,52.1406900,4.4582850
+436,52.1406900,4.4582867
+437,52.1406867,4.4582883
+438,52.1406850,4.4582900
+439,52.1406817,4.4582967
+440,52.1406783,4.4583050
+441,52.1406733,4.4583117
+442,52.1406717,4.4583150
+443,52.1406700,4.4583167
+444,52.1406700,4.4583133
+445,52.1406717,4.4583117
+446,52.1406750,4.4583100
+447,52.1406783,4.4583067
+448,52.1406817,4.4583017
+449,52.1406867,4.4582967
+450,52.1406900,4.4582950
+451,52.1406917,4.4582933
+452,52.1406933,4.4582900
+453,52.1406967,4.4582850
+454,52.1407000,4.4582800
+455,52.1407033,4.4582750
+456,52.1407083,4.4582683
+457,52.1407100,4.4582617
+458,52.1407117,4.4582583
+459,52.1407150,4.4582550
+460,52.1407167,4.4582500
+461,52.1407183,4.4582450
+462,52.1407200,4.4582417
+463,52.1407217,4.4582383
+464,52.1406883,4.4582567
+465,52.1406550,4.4582767
+466,52.1406450,4.4582817
+467,52.1406367,4.4582867
+468,52.1406283,4.4582900
+469,52.1406217,4.4582967
+470,52.1406150,4.4583033
+471,52.1406117,4.4583100
+472,52.1406067,4.4583167
+473,52.1406033,4.4583233
+474,52.1406033,4.4583283
+475,52.1406083,4.4583300
+476,52.1406117,4.4583300
+477,52.1406133,4.4583250
+478,52.1406167,4.4583217
+479,52.1406233,4.4583100
+480,52.1406283,4.4582967
+481,52.1406350,4.4582800
+482,52.1406417,4.4582633
+483,52.1406483,4.4582483
+484,52.1406533,4.4582383
+485,52.1406567,4.4582317
+486,52.1406583,4.4582267
+487,52.1406600,4.4582200
+488,52.1406600,4.4582167
+489,52.1406600,4.4582150
+490,52.1406567,4.4582150
+491,52.1406550,4.4582150
+492,52.1406533,4.4582133
+493,52.1406550,4.4582133
+494,52.1406550,4.4582167
+495,52.1406617,4.4582117
+496,52.1406650,4.4582067
+497,52.1406617,4.4582150
+498,52.1406617,4.4582200
+499,52.1406617,4.4582183
+500,52.1406633,4.4582083
+501,52.1406683,4.4582050
+502,52.1406733,4.4582050
+503,52.1406767,4.4582033
+504,52.1406800,4.4582067
+505,52.1406867,4.4582083
+506,52.1406967,4.4582067
+507,52.1407083,4.4582100
+508,52.1407200,4.4582217
+509,52.1407317,4.4582400
+510,52.1407467,4.4582617
+511,52.1407633,4.4582800
+512,52.1407833,4.4582967
+513,52.1408050,4.4583117
+514,52.1408267,4.4583250
+515,52.1408483,4.4583383
+516,52.1408717,4.4583517
+517,52.1408967,4.4583650
+518,52.1409200,4.4583800
+519,52.1409433,4.4583983
+520,52.1409683,4.4584167
+521,52.1409950,4.4584350
+522,52.1410200,4.4584550
+523,52.1410450,4.4584750
+524,52.1410667,4.4584950
+525,52.1410983,4.4585117
+526,52.1411233,4.4585250
+527,52.1411467,4.4585400
+528,52.1411700,4.4585583
+529,52.1411917,4.4585750
+530,52.1412150,4.4585917
+531,52.1412350,4.4586117
+532,52.1412517,4.4586350
+533,52.1412633,4.4586617
+534,52.1412717,4.4586933
+535,52.1412750,4.4587300
+536,52.1412750,4.4587683
+537,52.1412767,4.4588117
+538,52.1412783,4.4588567
+539,52.1412800,4.4589017
+540,52.1412783,4.4589450
+541,52.1412733,4.4589883
+542,52.1412633,4.4590300
+543,52.1412550,4.4590700
+544,52.1412467,4.4591117
+545,52.1412367,4.4591533
+546,52.1412267,4.4591950
+547,52.1412183,4.4592367
+548,52.1412117,4.4592783
+549,52.1412050,4.4593217
+550,52.1411967,4.4593683
+551,52.1411867,4.4594133
+552,52.1411733,4.4594600
+553,52.1411600,4.4595067
+554,52.1411450,4.4595533
+555,52.1411300,4.4595983
+556,52.1411167,4.4596433
+557,52.1411017,4.4596900
+558,52.1410850,4.4597367
+559,52.1410683,4.4597850
+560,52.1410533,4.4598333
+561,52.1410367,4.4598817
+562,52.1410217,4.4599300
+563,52.1410083,4.4599783
+564,52.1410033,4.4600283
+565,52.1410050,4.4600817
+566,52.1410167,4.4601300
+567,52.1410383,4.4601700
+568,52.1410633,4.4602050
+569,52.1410850,4.4602433
+570,52.1411017,4.4602867
+571,52.1411117,4.4603333
+572,52.1411150,4.4603800
+573,52.1411200,4.4604283
+574,52.1411233,4.4604733
+575,52.1411250,4.4605150
+576,52.1411267,4.4605517
+577,52.1411267,4.4605850
+578,52.1411233,4.4606183
+579,52.1411200,4.4606483
+580,52.1411200,4.4606783
+581,52.1411183,4.4607083
+582,52.1411167,4.4607383
+583,52.1411167,4.4607650
+584,52.1411150,4.4607867
+585,52.1411133,4.4608033
+586,52.1411133,4.4608167
+587,52.1411133,4.4608300
+588,52.1411133,4.4608400
+589,52.1411133,4.4608417
+590,52.1411117,4.4608400
+591,52.1411150,4.4608517
+592,52.1411150,4.4608600
+593,52.1411150,4.4608617
+594,52.1411150,4.4608633
+595,52.1411150,4.4608783
+596,52.1411217,4.4609050
+597,52.1411333,4.4609383
+598,52.1411483,4.4609733
+599,52.1411650,4.4610083
+600,52.1411867,4.4610317
+601,52.1412133,4.4610417
+602,52.1412400,4.4610400
+603,52.1412700,4.4610350
+604,52.1412983,4.4610317
+605,52.1413267,4.4610283
+606,52.1413583,4.4610250
+607,52.1413900,4.4610217
+608,52.1414233,4.4610150
+609,52.1414550,4.4610100
+610,52.1414833,4.4610050
+611,52.1415150,4.4610000
+612,52.1415467,4.4609950
+613,52.1415817,4.4609867
+614,52.1416133,4.4609767
+615,52.1416467,4.4609667
+616,52.1416800,4.4609600
+617,52.1417117,4.4609517
+618,52.1417433,4.4609450
+619,52.1417717,4.4609383
+620,52.1418017,4.4609317
+621,52.1418300,4.4609250
+622,52.1418583,4.4609200
+623,52.1418883,4.4609167
+624,52.1419183,4.4609117
+625,52.1419483,4.4609050
+626,52.1419783,4.4609000
+627,52.1420083,4.4608933
+628,52.1420400,4.4608883
+629,52.1420733,4.4608833
+630,52.1421067,4.4608750
+631,52.1421400,4.4608667
+632,52.1421733,4.4608567
+633,52.1422067,4.4608467
+634,52.1422383,4.4608383
+635,52.1422717,4.4608283
+636,52.1423033,4.4608183
+637,52.1423350,4.4608083
+638,52.1423667,4.4607950
+639,52.1423983,4.4607833
+640,52.1424317,4.4607717
+641,52.1424633,4.4607600
+642,52.1424950,4.4607500
+643,52.1425250,4.4607400
+644,52.1425550,4.4607300
+645,52.1425850,4.4607183
+646,52.1426167,4.4607100
+647,52.1426467,4.4607033
+648,52.1426783,4.4606950
+649,52.1427083,4.4606850
+650,52.1427383,4.4606750
+651,52.1427683,4.4606633
+652,52.1427983,4.4606533
+653,52.1428283,4.4606483
+654,52.1428583,4.4606400
+655,52.1428883,4.4606317
+656,52.1429167,4.4606233
+657,52.1429467,4.4606150
+658,52.1429767,4.4606067
+659,52.1430050,4.4605983
+660,52.1430350,4.4605883
+661,52.1430650,4.4605817
+662,52.1430950,4.4605750
+663,52.1431267,4.4605683
+664,52.1431583,4.4605633
+665,52.1431900,4.4605583
+666,52.1432217,4.4605517
+667,52.1432517,4.4605433
+668,52.1432817,4.4605350
+669,52.1433133,4.4605267
+670,52.1433417,4.4605200
+671,52.1433717,4.4605133
+672,52.1434017,4.4605033
+673,52.1434300,4.4604933
+674,52.1434600,4.4604867
+675,52.1434883,4.4604783
+676,52.1435167,4.4604733
+677,52.1435450,4.4604667
+678,52.1435750,4.4604600
+679,52.1436067,4.4604533
+680,52.1436367,4.4604467
+681,52.1436667,4.4604417
+682,52.1436950,4.4604333
+683,52.1437217,4.4604250
+684,52.1437517,4.4604150
+685,52.1437783,4.4604083
+686,52.1438050,4.4604000
+687,52.1438317,4.4603917
+688,52.1438600,4.4603817
+689,52.1438883,4.4603717
+690,52.1439183,4.4603617
+691,52.1439500,4.4603517
+692,52.1439800,4.4603400
+693,52.1440133,4.4603267
+694,52.1440450,4.4603133
+695,52.1440767,4.4603017
+696,52.1441083,4.4602883
+697,52.1441400,4.4602733
+698,52.1441717,4.4602583
+699,52.1442033,4.4602400
+700,52.1442350,4.4602217
+701,52.1442667,4.4602050
+702,52.1442983,4.4601900
+703,52.1443300,4.4601767
+704,52.1443600,4.4601650
+705,52.1443917,4.4601567
+706,52.1444250,4.4601483
+707,52.1444567,4.4601417
+708,52.1444883,4.4601367
+709,52.1445183,4.4601333
+710,52.1445500,4.4601300
+711,52.1445800,4.4601283
+712,52.1446117,4.4601267
+713,52.1446417,4.4601267
+714,52.1446717,4.4601300
+715,52.1447033,4.4601333
+716,52.1447350,4.4601350
+717,52.1447667,4.4601383
+718,52.1447967,4.4601433
+719,52.1448283,4.4601467
+720,52.1448600,4.4601517
+721,52.1448933,4.4601567
+722,52.1449267,4.4601617
+723,52.1449617,4.4601683
+724,52.1449983,4.4601783
+725,52.1450333,4.4601883
+726,52.1450700,4.4602017
+727,52.1451050,4.4602150
+728,52.1451383,4.4602283
+729,52.1451700,4.4602400
+730,52.1452000,4.4602517
+731,52.1452283,4.4602650
+732,52.1452567,4.4602767
+733,52.1452867,4.4602867
+734,52.1453167,4.4602967
+735,52.1453467,4.4603083
+736,52.1453783,4.4603200
+737,52.1454117,4.4603333
+738,52.1454417,4.4603450
+739,52.1454717,4.4603567
+740,52.1455000,4.4603767
+741,52.1455250,4.4604067
+742,52.1455400,4.4604500
+743,52.1455450,4.4605000
+744,52.1455483,4.4605483
+745,52.1455533,4.4605983
+746,52.1455567,4.4606467
+747,52.1455617,4.4606967
+748,52.1455667,4.4607467
+749,52.1455717,4.4607933
+750,52.1455767,4.4608417
+751,52.1455817,4.4608900
+752,52.1455867,4.4609383
+753,52.1455917,4.4609867
+754,52.1455983,4.4610350
+755,52.1456033,4.4610833
+756,52.1456083,4.4611300
+757,52.1456133,4.4611783
+758,52.1456183,4.4612267
+759,52.1456250,4.4612733
+760,52.1456283,4.4613200
+761,52.1456333,4.4613683
+762,52.1456383,4.4614167
+763,52.1456433,4.4614633
+764,52.1456500,4.4615100
+765,52.1456583,4.4615550
+766,52.1456633,4.4616000
+767,52.1456700,4.4616450
+768,52.1456767,4.4616917
+769,52.1456817,4.4617400
+770,52.1456867,4.4617900
+771,52.1456917,4.4618383
+772,52.1456967,4.4618867
+773,52.1457033,4.4619333
+774,52.1457100,4.4619800
+775,52.1457167,4.4620300
+776,52.1457283,4.4620767
+777,52.1457383,4.4621217
+778,52.1457450,4.4621700
+779,52.1457517,4.4622217
+780,52.1457583,4.4622733
+781,52.1457650,4.4623250
+782,52.1457717,4.4623767
+783,52.1457783,4.4624283
+784,52.1457850,4.4624817
+785,52.1457883,4.4625333
+786,52.1457917,4.4625833
+787,52.1457950,4.4626350
+788,52.1457967,4.4626850
+789,52.1458000,4.4627350
+790,52.1458017,4.4627867
+791,52.1458067,4.4628367
+792,52.1458117,4.4628867
+793,52.1458167,4.4629350
+794,52.1458233,4.4629833
+795,52.1458300,4.4630300
+796,52.1458383,4.4630800
+797,52.1458450,4.4631283
+798,52.1458517,4.4631750
+799,52.1458583,4.4632200
+800,52.1458650,4.4632667
+801,52.1458717,4.4633133
+802,52.1458783,4.4633600
+803,52.1458850,4.4634033
+804,52.1458900,4.4634467
+805,52.1458967,4.4634850
+806,52.1459017,4.4635250
+807,52.1459083,4.4635683
+808,52.1459167,4.4636150
+809,52.1459250,4.4636633
+810,52.1459333,4.4637117
+811,52.1459400,4.4637633
+812,52.1459500,4.4638150
+813,52.1459583,4.4638683
+814,52.1459650,4.4639183
+815,52.1459717,4.4639683
+816,52.1459783,4.4640183
+817,52.1459867,4.4640683
+818,52.1459933,4.4641167
+819,52.1460033,4.4641617
+820,52.1460217,4.4641967
+821,52.1460467,4.4642167
+822,52.1460750,4.4642350
+823,52.1461017,4.4642617
+824,52.1461233,4.4642983
+825,52.1461417,4.4643383
+826,52.1461617,4.4643800
+827,52.1461800,4.4644217
+828,52.1461967,4.4644667
+829,52.1462117,4.4645133
+830,52.1462233,4.4645600
+831,52.1462333,4.4646083
+832,52.1462417,4.4646567
+833,52.1462517,4.4647017
+834,52.1462583,4.4647450
+835,52.1462667,4.4647867
+836,52.1462750,4.4648250
+837,52.1462800,4.4648650
+838,52.1462867,4.4649017
+839,52.1462917,4.4649367
+840,52.1462967,4.4649683
+841,52.1463033,4.4650000
+842,52.1463067,4.4650333
+843,52.1463117,4.4650650
+844,52.1463167,4.4650967
+845,52.1463200,4.4651283
+846,52.1463250,4.4651617
+847,52.1463283,4.4651983
+848,52.1463300,4.4652350
+849,52.1463333,4.4652717
+850,52.1463367,4.4653083
+851,52.1463400,4.4653450
+852,52.1463433,4.4653817
+853,52.1463467,4.4654183
+854,52.1463500,4.4654550
+855,52.1463500,4.4654900
+856,52.1463500,4.4655250
+857,52.1463517,4.4655617
+858,52.1463533,4.4655950
+859,52.1463533,4.4656283
+860,52.1463567,4.4656617
+861,52.1463583,4.4656967
+862,52.1463617,4.4657300
+863,52.1463633,4.4657633
+864,52.1463667,4.4658000
+865,52.1463700,4.4658367
+866,52.1463717,4.4658733
+867,52.1463750,4.4659100
+868,52.1463767,4.4659467
+869,52.1463783,4.4659833
+870,52.1463800,4.4660217
+871,52.1463817,4.4660583
+872,52.1463850,4.4660950
+873,52.1463867,4.4661283
+874,52.1463867,4.4661633
+875,52.1463883,4.4661983
+876,52.1463883,4.4662350
+877,52.1463900,4.4662733
+878,52.1463900,4.4663117
+879,52.1463917,4.4663517
+880,52.1463933,4.4663933
+881,52.1463950,4.4664367
+882,52.1463983,4.4664800
+883,52.1464000,4.4665217
+884,52.1464017,4.4665667
+885,52.1464050,4.4666117
+886,52.1464083,4.4666583
+887,52.1464133,4.4667033
+888,52.1464183,4.4667483
+889,52.1464217,4.4667967
+890,52.1464250,4.4668483
+891,52.1464267,4.4669000
+892,52.1464300,4.4669517
+893,52.1464350,4.4670050
+894,52.1464383,4.4670617
+895,52.1464400,4.4671167
+896,52.1464433,4.4671700
+897,52.1464433,4.4672250
+898,52.1464450,4.4672767
+899,52.1464483,4.4673317
+900,52.1464500,4.4673850
+901,52.1464500,4.4674383
+902,52.1464550,4.4674933
+903,52.1464600,4.4675483
+904,52.1464650,4.4676033
+905,52.1464733,4.4676583
+906,52.1464750,4.4677100
+907,52.1464800,4.4677600
+908,52.1464800,4.4678083
+909,52.1464783,4.4678583
+910,52.1464783,4.4679050
+911,52.1464817,4.4679467
+912,52.1464850,4.4679867
+913,52.1464883,4.4680217
+914,52.1464900,4.4680483
+915,52.1464900,4.4680700
+916,52.1464867,4.4680833
+917,52.1464833,4.4680917
+918,52.1464817,4.4680950
+919,52.1464633,4.4681250
+920,52.1464467,4.4681517
+921,52.1464383,4.4681650
+922,52.1464367,4.4681667
+923,52.1464333,4.4681767
+924,52.1464317,4.4681800
+925,52.1464283,4.4681867
+926,52.1464250,4.4681967
+927,52.1464267,4.4681933
+928,52.1464217,4.4681983
+929,52.1464100,4.4682000
+930,52.1464000,4.4682033
+931,52.1463867,4.4682067
+932,52.1463750,4.4682100
+933,52.1463600,4.4682050
+934,52.1463467,4.4682083
+935,52.1463300,4.4682117
+936,52.1463150,4.4682150
+937,52.1462983,4.4682167
+938,52.1462833,4.4682183
+939,52.1462683,4.4682200
+940,52.1462550,4.4682233
+941,52.1462433,4.4682250
+942,52.1462333,4.4682283
+943,52.1462233,4.4682300
+944,52.1462133,4.4682300
+945,52.1462017,4.4682317
+946,52.1461800,4.4682367
+947,52.1461533,4.4682417
+948,52.1461200,4.4682483
+949,52.1460833,4.4682583
+950,52.1460450,4.4682683
+951,52.1460067,4.4682783
+952,52.1459667,4.4682900
+953,52.1459283,4.4683000
+954,52.1458917,4.4683083
+955,52.1458550,4.4683150
+956,52.1458183,4.4683217
+957,52.1457833,4.4683300
+958,52.1457500,4.4683383
+959,52.1457167,4.4683450
+960,52.1456833,4.4683500
+961,52.1456517,4.4683550
+962,52.1456200,4.4683583
+963,52.1455867,4.4683617
+964,52.1455550,4.4683650
+965,52.1455233,4.4683667
+966,52.1454917,4.4683717
+967,52.1454583,4.4683767
+968,52.1454250,4.4683800
+969,52.1453933,4.4683833
+970,52.1453633,4.4683883
+971,52.1453333,4.4683950
+972,52.1453033,4.4684017
+973,52.1452733,4.4684067
+974,52.1452433,4.4684100
+975,52.1452150,4.4684133
+976,52.1451850,4.4684167
+977,52.1451550,4.4684217
+978,52.1451267,4.4684300
+979,52.1450983,4.4684367
+980,52.1450700,4.4684433
+981,52.1450400,4.4684500
+982,52.1450117,4.4684567
+983,52.1449817,4.4684617
+984,52.1449517,4.4684683
+985,52.1449200,4.4684733
+986,52.1448900,4.4684767
+987,52.1448600,4.4684817
+988,52.1448283,4.4684867
+989,52.1447983,4.4684900
+990,52.1447683,4.4684950
+991,52.1447367,4.4685033
+992,52.1447067,4.4685117
+993,52.1446750,4.4685183
+994,52.1446433,4.4685233
+995,52.1446133,4.4685283
+996,52.1445817,4.4685333
+997,52.1445550,4.4685367
+998,52.1445283,4.4685400
+999,52.1445017,4.4685450
+1000,52.1444750,4.4685483
+1001,52.1444500,4.4685517
+1002,52.1444267,4.4685550
+1003,52.1444033,4.4685617
+1004,52.1443783,4.4685683
+1005,52.1443550,4.4685783
+1006,52.1443333,4.4685933
+1007,52.1443133,4.4686083
+1008,52.1442950,4.4686233
+1009,52.1442750,4.4686367
+1010,52.1442517,4.4686483
+1011,52.1442267,4.4686567
+1012,52.1442033,4.4686650
+1013,52.1441767,4.4686717
+1014,52.1441517,4.4686783
+1015,52.1441233,4.4686817
+1016,52.1440950,4.4686850
+1017,52.1440667,4.4686883
+1018,52.1440367,4.4686917
+1019,52.1440067,4.4687033
+1020,52.1439767,4.4687117
+1021,52.1439467,4.4687183
+1022,52.1439167,4.4687250
+1023,52.1438883,4.4687317
+1024,52.1438600,4.4687367
+1025,52.1438317,4.4687417
+1026,52.1438017,4.4687467
+1027,52.1437733,4.4687517
+1028,52.1437450,4.4687583
+1029,52.1437183,4.4687633
+1030,52.1436900,4.4687667
+1031,52.1436617,4.4687717
+1032,52.1436350,4.4687767
+1033,52.1436067,4.4687800
+1034,52.1435800,4.4687833
+1035,52.1435550,4.4687850
+1036,52.1435300,4.4687900
+1037,52.1435067,4.4687950
+1038,52.1434817,4.4687983
+1039,52.1434583,4.4688000
+1040,52.1434350,4.4688033
+1041,52.1434100,4.4688083
+1042,52.1433850,4.4688133
+1043,52.1433600,4.4688200
+1044,52.1433367,4.4688250
+1045,52.1433133,4.4688267
+1046,52.1432900,4.4688300
+1047,52.1432683,4.4688367
+1048,52.1432467,4.4688467
+1049,52.1432283,4.4688633
+1050,52.1432117,4.4688900
+1051,52.1432033,4.4689233
+1052,52.1431983,4.4689633
+1053,52.1431967,4.4690067
+1054,52.1431967,4.4690517
+1055,52.1431933,4.4690983
+1056,52.1431933,4.4691467
+1057,52.1431933,4.4691950
+1058,52.1431967,4.4692417
+1059,52.1432000,4.4692883
+1060,52.1432017,4.4693317
+1061,52.1432050,4.4693767
+1062,52.1432067,4.4694200
+1063,52.1432083,4.4694633
+1064,52.1432117,4.4695033
+1065,52.1432150,4.4695433
+1066,52.1432183,4.4695817
+1067,52.1432233,4.4696183
+1068,52.1432283,4.4696533
+1069,52.1432350,4.4696867
+1070,52.1432467,4.4697150
+1071,52.1432650,4.4697367
+1072,52.1432850,4.4697517
+1073,52.1433050,4.4697633
+1074,52.1433267,4.4697683
+1075,52.1433517,4.4697700
+1076,52.1433750,4.4697733
+1077,52.1433983,4.4697717
+1078,52.1434233,4.4697700
+1079,52.1434500,4.4697633
+1080,52.1434767,4.4697583
+1081,52.1435033,4.4697567
+1082,52.1435283,4.4697550
+1083,52.1435550,4.4697533
+1084,52.1435800,4.4697483
+1085,52.1436050,4.4697450
+1086,52.1436283,4.4697400
+1087,52.1436500,4.4697383
+1088,52.1436767,4.4697333
+1089,52.1436983,4.4697317
+1090,52.1437200,4.4697267
+1091,52.1437433,4.4697233
+1092,52.1437667,4.4697183
+1093,52.1437917,4.4697167
+1094,52.1438183,4.4697133
+1095,52.1438450,4.4697083
+1096,52.1438733,4.4697033
+1097,52.1439050,4.4696950
+1098,52.1439333,4.4696900
+1099,52.1439633,4.4696817
+1100,52.1439917,4.4696733
+1101,52.1440217,4.4696667
+1102,52.1440500,4.4696583
+1103,52.1440783,4.4696517
+1104,52.1441067,4.4696467
+1105,52.1441333,4.4696417
+1106,52.1441617,4.4696383
+1107,52.1441900,4.4696350
+1108,52.1442200,4.4696317
+1109,52.1442483,4.4696283
+1110,52.1442783,4.4696300
+1111,52.1443067,4.4696433
+1112,52.1443283,4.4696683
+1113,52.1443450,4.4697033
+1114,52.1443567,4.4697417
+1115,52.1443633,4.4697833
+1116,52.1443650,4.4698250
+1117,52.1443667,4.4698633
+1118,52.1443667,4.4699050
+1119,52.1443650,4.4699450
+1120,52.1443667,4.4699850
+1121,52.1443667,4.4700250
+1122,52.1443667,4.4700633
+1123,52.1443683,4.4701000
+1124,52.1443683,4.4701333
+1125,52.1443683,4.4701633
+1126,52.1443667,4.4701900
+1127,52.1443650,4.4702133
+1128,52.1443650,4.4702317
+1129,52.1443650,4.4702500
+1130,52.1443650,4.4702633
+1131,52.1443667,4.4702717
+1132,52.1443650,4.4702750
+1133,52.1443700,4.4702667
+1134,52.1443717,4.4702650
+1135,52.1443750,4.4702633
+1136,52.1443767,4.4702617
+1137,52.1443767,4.4702600
+1138,52.1443800,4.4702483
+1139,52.1443850,4.4702367
+1140,52.1443850,4.4702333
+1141,52.1443883,4.4702300
+1142,52.1443883,4.4702267
+1143,52.1443883,4.4702217
+1144,52.1443867,4.4702167
+1145,52.1443817,4.4702167
+1146,52.1443783,4.4702150
+1147,52.1443733,4.4702150
+1148,52.1443683,4.4702167
+1149,52.1443650,4.4702183
+1150,52.1443617,4.4702217
+1151,52.1443600,4.4702267
+1152,52.1443583,4.4702317
+1153,52.1443550,4.4702400
+1154,52.1443550,4.4702450
+1155,52.1443550,4.4702517
+1156,52.1443550,4.4702583
+1157,52.1443567,4.4702650
+1158,52.1443583,4.4702717
+1159,52.1443617,4.4702783
+1160,52.1443633,4.4702817
+1161,52.1443667,4.4702817
+1162,52.1443700,4.4702800
+1163,52.1443733,4.4702783
+1164,52.1443750,4.4702800
+1165,52.1443767,4.4702800
+1166,52.1443783,4.4702783
+1167,52.1443783,4.4702800
+1168,52.1443800,4.4702833
+1169,52.1443767,4.4702817
+1170,52.1443767,4.4702783
+1171,52.1443767,4.4702767
+1172,52.1443767,4.4702750
+1173,52.1443783,4.4702767
+1174,52.1443800,4.4702783
+1175,52.1443817,4.4702800
+1176,52.1443833,4.4702817
+1177,52.1443850,4.4702833
+1178,52.1443867,4.4702867
+1179,52.1443883,4.4702883
+1180,52.1443900,4.4702900
+1181,52.1443917,4.4702933
+1182,52.1443933,4.4702950
+1183,52.1443950,4.4702950
+1184,52.1443967,4.4702917
+1185,52.1443983,4.4702883
+1186,52.1444000,4.4702833
+1187,52.1444017,4.4702750
+1188,52.1444033,4.4702683
+1189,52.1444017,4.4702583
+1190,52.1443967,4.4702617
+1191,52.1443983,4.4702650
+1192,52.1444017,4.4702667
+1193,52.1444050,4.4702667
+1194,52.1444083,4.4702667
+1195,52.1444067,4.4702667
+1196,52.1444050,4.4702733
+1197,52.1444033,4.4702900
+1198,52.1443983,4.4703133
+1199,52.1443883,4.4703433
+1200,52.1443683,4.4703733
+1201,52.1443383,4.4703933
+1202,52.1443050,4.4704033
+1203,52.1442733,4.4704083
+1204,52.1442417,4.4704133
+1205,52.1442100,4.4704167
+1206,52.1441817,4.4704200
+1207,52.1441517,4.4704217
+1208,52.1441233,4.4704250
+1209,52.1440950,4.4704283
+1210,52.1440650,4.4704317
+1211,52.1440350,4.4704350
+1212,52.1440050,4.4704367
+1213,52.1439750,4.4704400
+1214,52.1439450,4.4704433
+1215,52.1439167,4.4704467
+1216,52.1438883,4.4704517
+1217,52.1438600,4.4704550
+1218,52.1438333,4.4704600
+1219,52.1438050,4.4704617
+1220,52.1437767,4.4704650
+1221,52.1437483,4.4704700
+1222,52.1437217,4.4704750
+1223,52.1436933,4.4704800
+1224,52.1436667,4.4704850
+1225,52.1436400,4.4704883
+1226,52.1436133,4.4704933
+1227,52.1435867,4.4704983
+1228,52.1435600,4.4705050
+1229,52.1435317,4.4705117
+1230,52.1435033,4.4705133
+1231,52.1434750,4.4705150
+1232,52.1434483,4.4705183
+1233,52.1434200,4.4705233
+1234,52.1433917,4.4705267
+1235,52.1433633,4.4705267
+1236,52.1433350,4.4705283
+1237,52.1433067,4.4705283
+1238,52.1432800,4.4705317
+1239,52.1432517,4.4705383
+1240,52.1432233,4.4705450
+1241,52.1431967,4.4705550
+1242,52.1431683,4.4705633
+1243,52.1431400,4.4705700
+1244,52.1431100,4.4705750
+1245,52.1430817,4.4705783
+1246,52.1430533,4.4705817
+1247,52.1430250,4.4705867
+1248,52.1429967,4.4705933
+1249,52.1429700,4.4706000
+1250,52.1429433,4.4706050
+1251,52.1429183,4.4706083
+1252,52.1428933,4.4706117
+1253,52.1428700,4.4706167
+1254,52.1428467,4.4706217
+1255,52.1428250,4.4706250
+1256,52.1428050,4.4706267
+1257,52.1427867,4.4706267
+1258,52.1427700,4.4706267
+1259,52.1427550,4.4706233
+1260,52.1427417,4.4706200
+1261,52.1427300,4.4706183
+1262,52.1427200,4.4706167
+1263,52.1427133,4.4706133
+1264,52.1427100,4.4706133
+1265,52.1427117,4.4706133
+1266,52.1427133,4.4706117
+1267,52.1427150,4.4706100
+1268,52.1427167,4.4706067
+1269,52.1427200,4.4706033
+1270,52.1427217,4.4705967
+1271,52.1427233,4.4705933
+1272,52.1427250,4.4705917
+1273,52.1427267,4.4705917
+1274,52.1427267,4.4705933
+1275,52.1427267,4.4705950
+1276,52.1427250,4.4705983
+1277,52.1427217,4.4706017
+1278,52.1427200,4.4706050
+1279,52.1427167,4.4706083
+1280,52.1427133,4.4706100
+1281,52.1427067,4.4706150
+1282,52.1426967,4.4706283
+1283,52.1426767,4.4706500
+1284,52.1426567,4.4706617
+1285,52.1426350,4.4706683
+1286,52.1426133,4.4706800
+1287,52.1425950,4.4706983
+1288,52.1425800,4.4707200
+1289,52.1425683,4.4707433
+1290,52.1425600,4.4707667
+1291,52.1425517,4.4707883
+1292,52.1425450,4.4708117
+1293,52.1425417,4.4708367
+1294,52.1425383,4.4708600
+1295,52.1425383,4.4708850
+1296,52.1425383,4.4709083
+1297,52.1425383,4.4709333
+1298,52.1425400,4.4709633
+1299,52.1425433,4.4709950
+1300,52.1425433,4.4710250
+1301,52.1425483,4.4710517
+1302,52.1425533,4.4710783
+1303,52.1425583,4.4711050
+1304,52.1425617,4.4711300
+1305,52.1425650,4.4711567
+1306,52.1425650,4.4711817
+1307,52.1425667,4.4712067
+1308,52.1425683,4.4712350
+1309,52.1425700,4.4712617
+1310,52.1425717,4.4712933
+1311,52.1425750,4.4713283
+1312,52.1425783,4.4713617
+1313,52.1425833,4.4713967
+1314,52.1425833,4.4714367
+1315,52.1425817,4.4714783
+1316,52.1425817,4.4715167
+1317,52.1425833,4.4715550
+1318,52.1425817,4.4715917
+1319,52.1425817,4.4716300
+1320,52.1425817,4.4716700
+1321,52.1425817,4.4717083
+1322,52.1425833,4.4717450
+1323,52.1425850,4.4717800
+1324,52.1425883,4.4718167
+1325,52.1425900,4.4718517
+1326,52.1425917,4.4718867
+1327,52.1425950,4.4719217
+1328,52.1425950,4.4719533
+1329,52.1425967,4.4719833
+1330,52.1425983,4.4720150
+1331,52.1426017,4.4720467
+1332,52.1426033,4.4720800
+1333,52.1426067,4.4721117
+1334,52.1426083,4.4721467
+1335,52.1426083,4.4721800
+1336,52.1426100,4.4722150
+1337,52.1426100,4.4722483
+1338,52.1426100,4.4722817
+1339,52.1426117,4.4723167
+1340,52.1426133,4.4723500
+1341,52.1426150,4.4723817
+1342,52.1426167,4.4724133
+1343,52.1426183,4.4724467
+1344,52.1426200,4.4724800
+1345,52.1426217,4.4725117
+1346,52.1426250,4.4725450
+1347,52.1426300,4.4725767
+1348,52.1426350,4.4726067
+1349,52.1426383,4.4726400
+1350,52.1426417,4.4726717
+1351,52.1426433,4.4727050
+1352,52.1426467,4.4727367
+1353,52.1426500,4.4727683
+1354,52.1426500,4.4728017
+1355,52.1426500,4.4728383
+1356,52.1426450,4.4728750
+1357,52.1426317,4.4729083
+1358,52.1426133,4.4729367
+1359,52.1425917,4.4729633
+1360,52.1425683,4.4729800
+1361,52.1425417,4.4729867
+1362,52.1425167,4.4729900
+1363,52.1424917,4.4729900
+1364,52.1424650,4.4729967
+1365,52.1424383,4.4730017
+1366,52.1424133,4.4730017
+1367,52.1423883,4.4730033
+1368,52.1423617,4.4730083
+1369,52.1423350,4.4730117
+1370,52.1423067,4.4730150
+1371,52.1422800,4.4730183
+1372,52.1422517,4.4730233
+1373,52.1421950,4.4730300
+1374,52.1421683,4.4730350
+1375,52.1421417,4.4730400
+1376,52.1421133,4.4730483
+1377,52.1420867,4.4730517
+1378,52.1420567,4.4730550
+1379,52.1420283,4.4730600
+1380,52.1420017,4.4730633
+1381,52.1419750,4.4730650
+1382,52.1419467,4.4730683
+1383,52.1419183,4.4730717
+1384,52.1418900,4.4730750
+1385,52.1418617,4.4730783
+1386,52.1418333,4.4730817
+1387,52.1418050,4.4730850
+1388,52.1417767,4.4730883
+1389,52.1417500,4.4730950
+1390,52.1417233,4.4731017
+1391,52.1416967,4.4731067
+1392,52.1416700,4.4731133
+1393,52.1416417,4.4731183
+1394,52.1416133,4.4731233
+1395,52.1415850,4.4731300
+1396,52.1415583,4.4731367
+1397,52.1415317,4.4731450
+1398,52.1415067,4.4731517
+1399,52.1414800,4.4731583
+1400,52.1414533,4.4731667
+1401,52.1414267,4.4731817
+1402,52.1414017,4.4732033
+1403,52.1413783,4.4732317
+1404,52.1413583,4.4732633
+1405,52.1413450,4.4732983
+1406,52.1413350,4.4733383
+1407,52.1413300,4.4733783
+1408,52.1413317,4.4734200
+1409,52.1413350,4.4734667
+1410,52.1413400,4.4735150
+1411,52.1413467,4.4735617
+1412,52.1413517,4.4736100
+1413,52.1413600,4.4736550
+1414,52.1413667,4.4737000
+1415,52.1413717,4.4737467
+1416,52.1413800,4.4737950
+1417,52.1413867,4.4738417
+1418,52.1413917,4.4738883
+1419,52.1413967,4.4739367
+1420,52.1414033,4.4739850
+1421,52.1414083,4.4740350
+1422,52.1414167,4.4740850
+1423,52.1414233,4.4741367
+1424,52.1414300,4.4741867
+1425,52.1414350,4.4742367
+1426,52.1414417,4.4742883
+1427,52.1414483,4.4743383
+1428,52.1414533,4.4743900
+1429,52.1414583,4.4744400
+1430,52.1414617,4.4744883
+1431,52.1414650,4.4745367
+1432,52.1414683,4.4745850
+1433,52.1414750,4.4746333
+1434,52.1414817,4.4746833
+1435,52.1414900,4.4747333
+1436,52.1414967,4.4747833
+1437,52.1415033,4.4748317
+1438,52.1415100,4.4748800
+1439,52.1415150,4.4749267
+1440,52.1415183,4.4749750
+1441,52.1415233,4.4750233
+1442,52.1415300,4.4750717
+1443,52.1415350,4.4751183
+1444,52.1415417,4.4751667
+1445,52.1415483,4.4752133
+1446,52.1415550,4.4752617
+1447,52.1415600,4.4753083
+1448,52.1415667,4.4753583
+1449,52.1415733,4.4754083
+1450,52.1415833,4.4754583
+1451,52.1415900,4.4755100
+1452,52.1415967,4.4755650
+1453,52.1416017,4.4756217
+1454,52.1416033,4.4756800
+1455,52.1416000,4.4757367
+1456,52.1415983,4.4757900
+1457,52.1416000,4.4758433
+1458,52.1416033,4.4758933
+1459,52.1416067,4.4759417
+1460,52.1416117,4.4759900
+1461,52.1416183,4.4760383
+1462,52.1416217,4.4760867
+1463,52.1416267,4.4761333
+1464,52.1416333,4.4761833
+1465,52.1416400,4.4762317
+1466,52.1416483,4.4762833
+1467,52.1416583,4.4763300
+1468,52.1416683,4.4763767
+1469,52.1416767,4.4764217
+1470,52.1416833,4.4764667
+1471,52.1416917,4.4765117
+1472,52.1417017,4.4765550
+1473,52.1417100,4.4765967
+1474,52.1417167,4.4766400
+1475,52.1417217,4.4766850
+1476,52.1417250,4.4767333
+1477,52.1417117,4.4768317
+1478,52.1416917,4.4768700
+1479,52.1416650,4.4768983
+1480,52.1416350,4.4769200
+1481,52.1416033,4.4769417
+1482,52.1415717,4.4769650
+1483,52.1415433,4.4769850
+1484,52.1415133,4.4770067
+1485,52.1414833,4.4770300
+1486,52.1414533,4.4770517
+1487,52.1414250,4.4770733
+1488,52.1413950,4.4770967
+1489,52.1413667,4.4771183
+1490,52.1413367,4.4771417
+1491,52.1413083,4.4771667
+1492,52.1412800,4.4771917
+1493,52.1412517,4.4772183
+1494,52.1412217,4.4772450
+1495,52.1411917,4.4772717
+1496,52.1411617,4.4772983
+1497,52.1411317,4.4773267
+1498,52.1411033,4.4773550
+1499,52.1410717,4.4773833
+1500,52.1410433,4.4774100
+1501,52.1410167,4.4774350
+1502,52.1409867,4.4774583
+1503,52.1409583,4.4774833
+1504,52.1409283,4.4775117
+1505,52.1408983,4.4775400
+1506,52.1408700,4.4775667
+1507,52.1408400,4.4775933
+1508,52.1408117,4.4776217
+1509,52.1407817,4.4776500
+1510,52.1407517,4.4776783
+1511,52.1407200,4.4777050
+1512,52.1406900,4.4777317
+1513,52.1406600,4.4777583
+1514,52.1406300,4.4777850
+1515,52.1406000,4.4778100
+1516,52.1405700,4.4778383
+1517,52.1405400,4.4778650
+1518,52.1405100,4.4778933
+1519,52.1404800,4.4779183
+1520,52.1404517,4.4779450
+1521,52.1404233,4.4779717
+1522,52.1403950,4.4779983
+1523,52.1403667,4.4780217
+1524,52.1403383,4.4780467
+1525,52.1403100,4.4780700
+1526,52.1402833,4.4780950
+1527,52.1402550,4.4781200
+1528,52.1402267,4.4781450
+1529,52.1402000,4.4781700
+1530,52.1401783,4.4781900
+1531,52.1401517,4.4782150
+1532,52.1401233,4.4782417
+1533,52.1400967,4.4782650
+1534,52.1400700,4.4782833
+1535,52.1400450,4.4783017
+1536,52.1400217,4.4783200
+1537,52.1399950,4.4783367
+1538,52.1399717,4.4783533
+1539,52.1399483,4.4783700
+1540,52.1399283,4.4783900
+1541,52.1399117,4.4784083
+1542,52.1399017,4.4784250
+1543,52.1398950,4.4784350
+1544,52.1398917,4.4784433
+1545,52.1398900,4.4784600
+1546,52.1398933,4.4784850
+1547,52.1399000,4.4785150
+1548,52.1399133,4.4785517
+1549,52.1399267,4.4785867
+1550,52.1399400,4.4786217
+1551,52.1399450,4.4786633
+1552,52.1399400,4.4787050
+1553,52.1399217,4.4787417
+1554,52.1398900,4.4787750
+1555,52.1398517,4.4788117
+1556,52.1398083,4.4788533
+1557,52.1397617,4.4788983
+1558,52.1397100,4.4789467
+1559,52.1396583,4.4789967
+1560,52.1394467,4.4791950
+1561,52.1394083,4.4792233
+1562,52.1393700,4.4792533
+1563,52.1393367,4.4792900
+1564,52.1393017,4.4793300
+1565,52.1392767,4.4793533
+1566,52.1392533,4.4793767
+1567,52.1392300,4.4794117
+1568,52.1392150,4.4794517
+1569,52.1392133,4.4794950
+1570,52.1392217,4.4795400
+1571,52.1392350,4.4795850
+1572,52.1392533,4.4796300
+1573,52.1392967,4.4797067
+1574,52.1393217,4.4797400
+1575,52.1393500,4.4797683
+1576,52.1393800,4.4797883
+1577,52.1394100,4.4798067
+1578,52.1394400,4.4798267
+1579,52.1394700,4.4798483
+1580,52.1395000,4.4798667
+1581,52.1395300,4.4798867
+1582,52.1395583,4.4799083
+1583,52.1395917,4.4799283
+1584,52.1396183,4.4799500
+1585,52.1396450,4.4799733
+1586,52.1396700,4.4800050
+1587,52.1396917,4.4800367
+1588,52.1397133,4.4800683
+1589,52.1397333,4.4801033
+1590,52.1397517,4.4801383
+1591,52.1397700,4.4801767
+1592,52.1397867,4.4802150
+1593,52.1398050,4.4802517
+1594,52.1398200,4.4802900
+1595,52.1398350,4.4803283
+1596,52.1398483,4.4803683
+1597,52.1398617,4.4804083
+1598,52.1398767,4.4804483
+1599,52.1398900,4.4804900
+1600,52.1399050,4.4805317
+1601,52.1399200,4.4805700
+1602,52.1399350,4.4806117
+1603,52.1399483,4.4806500
+1604,52.1399617,4.4806900
+1605,52.1399750,4.4807300
+1606,52.1399900,4.4807717
+1607,52.1400050,4.4808133
+1608,52.1400200,4.4808550
+1609,52.1400350,4.4808983
+1610,52.1400483,4.4809400
+1611,52.1400633,4.4809817
+1612,52.1400783,4.4810250
+1613,52.1400950,4.4810667
+1614,52.1401100,4.4811083
+1615,52.1401250,4.4811500
+1616,52.1401417,4.4811900
+1617,52.1401567,4.4812317
+1618,52.1401717,4.4812750
+1619,52.1401883,4.4813150
+1620,52.1402033,4.4813583
+1621,52.1402183,4.4814017
+1622,52.1402333,4.4814450
+1623,52.1402500,4.4814900
+1624,52.1402667,4.4815350
+1625,52.1402850,4.4815817
+1626,52.1403000,4.4816300
+1627,52.1403183,4.4816783
+1628,52.1403367,4.4817250
+1629,52.1403550,4.4817700
+1630,52.1403733,4.4818150
+1631,52.1403933,4.4818583
+1632,52.1404117,4.4819017
+1633,52.1404300,4.4819467
+1634,52.1404467,4.4819900
+1635,52.1404667,4.4820333
+1636,52.1404850,4.4820767
+1637,52.1405033,4.4821183
+1638,52.1405217,4.4821600
+1639,52.1405400,4.4822017
+1640,52.1405567,4.4822417
+1641,52.1405750,4.4822833
+1642,52.1405933,4.4823233
+1643,52.1406100,4.4823650
+1644,52.1406283,4.4824050
+1645,52.1406450,4.4824433
+1646,52.1406633,4.4824833
+1647,52.1406800,4.4825233
+1648,52.1406983,4.4825617
+1649,52.1407167,4.4825983
+1650,52.1407367,4.4826367
+1651,52.1407567,4.4826750
+1652,52.1407783,4.4827167
+1653,52.1407983,4.4827567
+1654,52.1408167,4.4827983
+1655,52.1408333,4.4828417
+1656,52.1408500,4.4828833
+1657,52.1408667,4.4829250
+1658,52.1408833,4.4829667
+1659,52.1408983,4.4830050
+1660,52.1409167,4.4830383
+1661,52.1409317,4.4830700
+1662,52.1409467,4.4831000
+1663,52.1409583,4.4831300
+1664,52.1409733,4.4831583
+1665,52.1409883,4.4831867
+1666,52.1410050,4.4832183
+1667,52.1410233,4.4832500
+1668,52.1410417,4.4832800
+1669,52.1410617,4.4833083
+1670,52.1410800,4.4833350
+1671,52.1410983,4.4833600
+1672,52.1411150,4.4833883
+1673,52.1411317,4.4834183
+1674,52.1411500,4.4834500
+1675,52.1411683,4.4834833
+1676,52.1411867,4.4835167
+1677,52.1412050,4.4835500
+1678,52.1412233,4.4835867
+1679,52.1412433,4.4836233
+1680,52.1412617,4.4836617
+1681,52.1412817,4.4836983
+1682,52.1413017,4.4837350
+1683,52.1413233,4.4837717
+1684,52.1413433,4.4838067
+1685,52.1413650,4.4838433
+1686,52.1413850,4.4838833
+1687,52.1414050,4.4839200
+1688,52.1414267,4.4839567
+1689,52.1414467,4.4839933
+1690,52.1414650,4.4840317
+1691,52.1414850,4.4840683
+1692,52.1415033,4.4841033
+1693,52.1415217,4.4841417
+1694,52.1415400,4.4841783
+1695,52.1415583,4.4842150
+1696,52.1415783,4.4842533
+1697,52.1415967,4.4842917
+1698,52.1416150,4.4843300
+1699,52.1416350,4.4843683
+1700,52.1416533,4.4844067
+1701,52.1416700,4.4844417
+1702,52.1416867,4.4844783
+1703,52.1417017,4.4845150
+1704,52.1417150,4.4845500
+1705,52.1417267,4.4845817
+1706,52.1417367,4.4846150
+1707,52.1417433,4.4846483
+1708,52.1417483,4.4846833
+1709,52.1417533,4.4847183
+1710,52.1417567,4.4847533
+1711,52.1417583,4.4847900
+1712,52.1417583,4.4848267
+1713,52.1417600,4.4848633
+1714,52.1417633,4.4848967
+1715,52.1417650,4.4849317
+1716,52.1417683,4.4849667
+1717,52.1417700,4.4850017
+1718,52.1417733,4.4850367
+1719,52.1417767,4.4850733
+1720,52.1417783,4.4851133
+1721,52.1417800,4.4851533
+1722,52.1417817,4.4851933
+1723,52.1417817,4.4852350
+1724,52.1417817,4.4852800
+1725,52.1417783,4.4853250
+1726,52.1417700,4.4853700
+1727,52.1417367,4.4854567
+1728,52.1417150,4.4855017
+1729,52.1416917,4.4855450
+1730,52.1416617,4.4855917
+1731,52.1416333,4.4856367
+1732,52.1415983,4.4856867
+1733,52.1415650,4.4857350
+1734,52.1415317,4.4857817
+1735,52.1414967,4.4858317
+1736,52.1414583,4.4858867
+1737,52.1414200,4.4859400
+1738,52.1413817,4.4859933
+1739,52.1413467,4.4860450
+1740,52.1413117,4.4860967
+1741,52.1412717,4.4861467
+1742,52.1412383,4.4862033
+1743,52.1412200,4.4862600
+1744,52.1412233,4.4863150
+1745,52.1412400,4.4863667
+1746,52.1412617,4.4864150
+1747,52.1412867,4.4864633
+1748,52.1413100,4.4865117
+1749,52.1413333,4.4865617
+1750,52.1413583,4.4866100
+1751,52.1413817,4.4866583
+1752,52.1414333,4.4867467
+1753,52.1414583,4.4867883
+1754,52.1414817,4.4868317
+1755,52.1415033,4.4868750
+1756,52.1415233,4.4869133
+1757,52.1415433,4.4869450
+1758,52.1415617,4.4869833
+1759,52.1415883,4.4870250
+1760,52.1416233,4.4870717
+1761,52.1416567,4.4871233
+1762,52.1416883,4.4871733
+1763,52.1417167,4.4872267
+1764,52.1417467,4.4872783
+1765,52.1417750,4.4873317
+1766,52.1418050,4.4873833
+1767,52.1418333,4.4874367
+1768,52.1418617,4.4874900
+1769,52.1419000,4.4875067
+1770,52.1419250,4.4875533
+1771,52.1419267,4.4876117
+1772,52.1419150,4.4876667
+1773,52.1418900,4.4877133
+1774,52.1418550,4.4877517
+1775,52.1418200,4.4877867
+1776,52.1417883,4.4878233
+1777,52.1417600,4.4878633
+1778,52.1417350,4.4879067
+1779,52.1417150,4.4879500
+1780,52.1416950,4.4879950
+1781,52.1416800,4.4880450
+1782,52.1416667,4.4880983
+1783,52.1416617,4.4881567
+1784,52.1416583,4.4882217
+1785,52.1416617,4.4883450
+1786,52.1416683,4.4884083
+1787,52.1416817,4.4884700
+1788,52.1416983,4.4885283
+1789,52.1417167,4.4885850
+1790,52.1417350,4.4886400
+1791,52.1417517,4.4886933
+1792,52.1417667,4.4887450
+1793,52.1417817,4.4887983
+1794,52.1417983,4.4888533
+1795,52.1418133,4.4889050
+1796,52.1418300,4.4889600
+1797,52.1418433,4.4890117
+1798,52.1418567,4.4890600
+1799,52.1418717,4.4891117
+1800,52.1418867,4.4891600
+1801,52.1419033,4.4892117
+1802,52.1419183,4.4892667
+1803,52.1419350,4.4893217
+1804,52.1419517,4.4893767
+1805,52.1419683,4.4894300
+1806,52.1419833,4.4894833
+1807,52.1420000,4.4895367
+1808,52.1420167,4.4895900
+1809,52.1420483,4.4896950
+1810,52.1420650,4.4897467
+1811,52.1420800,4.4897983
+1812,52.1420967,4.4898483
+1813,52.1421117,4.4898983
+1814,52.1421250,4.4899483
+1815,52.1421400,4.4900033
+1816,52.1421533,4.4900533
+1817,52.1421683,4.4901017
+1818,52.1421817,4.4901517
+1819,52.1421933,4.4902017
+1820,52.1422050,4.4902517
+1821,52.1422150,4.4903000
+1822,52.1422267,4.4903483
+1823,52.1422567,4.4904483
+1824,52.1422717,4.4904967
+1825,52.1422883,4.4905433
+1826,52.1423017,4.4905933
+1827,52.1423150,4.4906483
+1828,52.1423300,4.4907017
+1829,52.1423450,4.4907550
+1830,52.1423617,4.4908100
+1831,52.1423783,4.4908633
+1832,52.1423950,4.4909133
+1833,52.1424117,4.4909633
+1834,52.1424267,4.4910100
+1835,52.1424417,4.4910583
+1836,52.1424583,4.4911083
+1837,52.1424733,4.4911633
+1838,52.1424883,4.4912150
+1839,52.1425050,4.4912667
+1840,52.1425200,4.4913167
+1841,52.1425350,4.4913683
+1842,52.1425500,4.4914200
+1843,52.1425667,4.4914717
+1844,52.1425817,4.4915200
+1845,52.1425983,4.4915700
+1846,52.1426133,4.4916183
+1847,52.1426250,4.4916667
+1848,52.1426383,4.4917150
+1849,52.1426533,4.4917617
+1850,52.1426700,4.4918083
+1851,52.1426850,4.4918567
+1852,52.1427017,4.4919050
+1853,52.1427167,4.4919533
+1854,52.1427317,4.4920033
+1855,52.1427467,4.4920550
+1856,52.1427617,4.4921083
+1857,52.1427767,4.4921633
+1858,52.1427917,4.4922183
+1859,52.1428050,4.4922717
+1860,52.1428217,4.4923233
+1861,52.1428350,4.4923750
+1862,52.1428667,4.4924800
+1863,52.1428800,4.4925283
+1864,52.1428950,4.4925817
+1865,52.1429083,4.4926350
+1866,52.1429217,4.4926817
+1867,52.1429333,4.4927250
+1868,52.1429433,4.4927717
+1869,52.1429567,4.4928200
+1870,52.1429717,4.4928700
+1871,52.1429867,4.4929233
+1872,52.1430033,4.4929817
+1873,52.1430150,4.4930283
+1874,52.1430283,4.4930750
+1875,52.1430433,4.4931233
+1876,52.1430600,4.4931700
+1877,52.1430767,4.4932133
+1878,52.1430900,4.4932567
+1879,52.1431050,4.4933033
+1880,52.1431217,4.4933500
+1881,52.1431383,4.4934050
+1882,52.1431533,4.4934483
+1883,52.1431667,4.4934900
+1884,52.1431800,4.4935300
+1885,52.1431900,4.4935767
+1886,52.1432033,4.4936250
+1887,52.1432167,4.4936700
+1888,52.1432317,4.4937167
+1889,52.1432467,4.4937633
+1890,52.1432583,4.4938083
+1891,52.1432733,4.4938583
+1892,52.1432883,4.4939100
+1893,52.1433050,4.4939633
+1894,52.1433217,4.4940167
+1895,52.1433367,4.4940700
+1896,52.1433500,4.4941200
+1897,52.1433650,4.4941767
+1898,52.1433783,4.4942233
+1899,52.1433950,4.4942717
+1900,52.1434100,4.4943233
+1901,52.1434433,4.4944300
+1902,52.1434600,4.4944817
+1903,52.1434767,4.4945317
+1904,52.1434917,4.4945817
+1905,52.1435067,4.4946317
+1906,52.1435217,4.4946817
+1907,52.1435383,4.4947333
+1908,52.1435550,4.4947833
+1909,52.1435717,4.4948317
+1910,52.1435883,4.4948800
+1911,52.1436050,4.4949283
+1912,52.1436250,4.4949733
+1913,52.1436433,4.4950200
+1914,52.1436600,4.4950667
+1915,52.1436800,4.4951150
+1916,52.1436983,4.4951617
+1917,52.1437150,4.4952100
+1918,52.1437333,4.4952567
+1919,52.1437517,4.4953033
+1920,52.1437683,4.4953517
+1921,52.1437850,4.4954000
+1922,52.1438017,4.4954483
+1923,52.1438183,4.4954983
+1924,52.1438333,4.4955467
+1925,52.1438483,4.4955933
+1926,52.1438650,4.4956400
+1927,52.1438817,4.4956883
+1928,52.1438950,4.4957383
+1929,52.1439100,4.4957867
+1930,52.1439233,4.4958333
+1931,52.1439383,4.4958800
+1932,52.1439517,4.4959250
+1933,52.1439650,4.4959700
+1934,52.1439783,4.4960133
+1935,52.1439950,4.4960567
+1936,52.1440100,4.4961000
+1937,52.1440233,4.4961367
+1938,52.1440433,4.4961767
+1939,52.1440667,4.4962200
+1940,52.1440833,4.4962683
+1941,52.1441000,4.4963167
+1942,52.1441167,4.4963633
+1943,52.1441333,4.4964133
+1944,52.1441500,4.4964617
+1945,52.1441617,4.4965133
+1946,52.1441717,4.4965700
+1947,52.1441817,4.4966250
+1948,52.1441917,4.4966767
+1949,52.1442017,4.4967283
+1950,52.1442150,4.4967767
+1951,52.1442300,4.4968250
+1952,52.1442450,4.4968700
+1953,52.1442600,4.4969167
+1954,52.1442750,4.4969617
+1955,52.1442900,4.4970050
+1956,52.1443050,4.4970483
+1957,52.1443200,4.4970950
+1958,52.1443350,4.4971417
+1959,52.1443483,4.4971883
+1960,52.1443633,4.4972367
+1961,52.1443767,4.4972833
+1962,52.1443917,4.4973300
+1963,52.1444050,4.4973767
+1964,52.1444200,4.4974233
+1965,52.1444350,4.4974700
+1966,52.1444533,4.4975183
+1967,52.1444700,4.4975633
+1968,52.1444850,4.4976050
+1969,52.1445000,4.4976483
+1970,52.1445133,4.4976933
+1971,52.1445283,4.4977400
+1972,52.1445433,4.4977850
+1973,52.1445583,4.4978300
+1974,52.1445750,4.4978767
+1975,52.1445917,4.4979233
+1976,52.1446083,4.4979700
+1977,52.1446233,4.4980167
+1978,52.1446383,4.4980600
+1979,52.1446517,4.4981017
+1980,52.1446633,4.4981400
+1981,52.1446750,4.4981750
+1982,52.1446850,4.4982067
+1983,52.1446933,4.4982350
+1984,52.1447017,4.4982567
+1985,52.1447083,4.4982733
+1986,52.1447150,4.4982850
+1987,52.1447200,4.4982950
+1988,52.1447217,4.4983033
+1989,52.1447233,4.4983100
+1990,52.1447267,4.4983200
+1991,52.1447300,4.4983300
+1992,52.1447317,4.4983367
+1993,52.1447317,4.4983417
+1994,52.1447333,4.4983433
+1995,52.1447283,4.4983467
+1996,52.1447283,4.4983517
+1997,52.1447283,4.4983550
+1998,52.1447283,4.4983600
+1999,52.1447283,4.4983617
+2000,52.1447300,4.4983617
+2001,52.1447317,4.4983600
+2002,52.1447333,4.4983583
+2003,52.1447350,4.4983567
+2004,52.1447283,4.4983650
+2005,52.1447283,4.4983667
+2006,52.1447267,4.4983683
+2007,52.1447250,4.4983700
+2008,52.1447267,4.4983700
+2009,52.1447283,4.4983717
+2010,52.1447300,4.4983717
+2011,52.1447317,4.4983733
+2012,52.1447333,4.4983750
+2013,52.1447350,4.4983750
+2014,52.1447350,4.4983783
+2015,52.1447367,4.4983850
+2016,52.1447367,4.4983833
+2017,52.1447383,4.4983767
+2018,52.1447383,4.4983733
+2019,52.1447400,4.4983650
+2020,52.1447417,4.4983617
+2021,52.1447417,4.4983567
+2022,52.1447417,4.4983517
+2023,52.1447400,4.4983467
+2024,52.1447367,4.4983433
+2025,52.1447350,4.4983383
+2026,52.1447350,4.4983367
+2027,52.1447333,4.4983350
+2028,52.1447333,4.4983317
+2029,52.1447333,4.4983300
+2030,52.1447300,4.4983350
+2031,52.1447283,4.4983350
+2032,52.1447267,4.4983367
+2033,52.1447267,4.4983400
+2034,52.1447250,4.4983417
+2035,52.1447250,4.4983433
+2036,52.1447250,4.4983450
+2037,52.1447250,4.4983500
+2038,52.1447250,4.4983550
+2039,52.1447233,4.4983567
+2040,52.1447233,4.4983600
+2041,52.1447233,4.4983650
+2042,52.1447217,4.4983667
+2043,52.1447200,4.4983667
+2044,52.1447200,4.4983700
+2045,52.1447233,4.4983767
+2046,52.1447267,4.4983900
+2047,52.1447333,4.4984083
+2048,52.1447400,4.4984283
+2049,52.1447467,4.4984500
+2050,52.1447550,4.4984750
+2051,52.1447617,4.4985017
+2052,52.1447700,4.4985300
+2053,52.1447800,4.4985650
+2054,52.1447933,4.4986000
+2055,52.1448100,4.4986367
+2056,52.1448317,4.4986700
+2057,52.1448567,4.4987017
+2058,52.1448833,4.4987350
+2059,52.1449100,4.4987700
+2060,52.1449350,4.4988100
+2061,52.1449583,4.4988550
+2062,52.1449767,4.4989050
+2063,52.1449950,4.4989550
+2064,52.1450117,4.4990083
+2065,52.1450283,4.4990583
+2066,52.1450433,4.4991117
+2067,52.1450600,4.4991667
+2068,52.1450750,4.4992183
+2069,52.1450900,4.4992683
+2070,52.1451067,4.4993200
+2071,52.1451200,4.4993733
+2072,52.1451317,4.4994283
+2073,52.1451383,4.4994867
+2074,52.1451433,4.4995450
+2075,52.1451483,4.4996017
+2076,52.1451550,4.4996550
+2077,52.1451650,4.4997050
+2078,52.1451783,4.4997567
+2079,52.1451933,4.4998050
+2080,52.1452083,4.4998517
+2081,52.1452233,4.4998983
+2082,52.1452400,4.4999433
+2083,52.1452533,4.4999900
+2084,52.1452683,4.5000367
+2085,52.1452833,4.5000833
+2086,52.1452983,4.5001283
+2087,52.1453150,4.5001750
+2088,52.1453317,4.5002183
+2089,52.1453483,4.5002650
+2090,52.1453633,4.5003133
+2091,52.1453800,4.5003617
+2092,52.1453950,4.5004100
+2093,52.1454117,4.5004567
+2094,52.1454283,4.5005033
+2095,52.1454433,4.5005533
+2096,52.1454583,4.5006050
+2097,52.1454733,4.5006550
+2098,52.1454900,4.5007067
+2099,52.1455050,4.5007567
+2100,52.1455183,4.5008067
+2101,52.1455333,4.5008550
+2102,52.1455467,4.5009017
+2103,52.1455617,4.5009467
+2104,52.1455733,4.5009917
+2105,52.1455867,4.5010383
+2106,52.1456017,4.5010850
+2107,52.1456167,4.5011333
+2108,52.1456333,4.5011817
+2109,52.1456500,4.5012300
+2110,52.1456650,4.5012783
+2111,52.1456817,4.5013267
+2112,52.1456983,4.5013750
+2113,52.1457133,4.5014267
+2114,52.1457300,4.5014717
+2115,52.1457483,4.5015183
+2116,52.1457650,4.5015717
+2117,52.1457817,4.5016233
+2118,52.1457967,4.5016750
+2119,52.1458133,4.5017250
+2120,52.1458300,4.5017733
+2121,52.1458467,4.5018200
+2122,52.1458667,4.5018650
+2123,52.1458850,4.5019100
+2124,52.1459050,4.5019533
+2125,52.1459233,4.5019967
+2126,52.1459333,4.5020450
+2127,52.1459500,4.5020933
+2128,52.1459633,4.5021433
+2129,52.1459717,4.5021933
+2130,52.1459783,4.5022433
+2131,52.1459867,4.5022917
+2132,52.1459983,4.5023333
+2133,52.1460100,4.5023717
+2134,52.1460233,4.5024117
+2135,52.1460417,4.5024550
+2136,52.1460550,4.5024967
+2137,52.1460717,4.5025383
+2138,52.1460883,4.5025833
+2139,52.1461033,4.5026300
+2140,52.1461200,4.5026750
+2141,52.1461350,4.5027217
+2142,52.1461500,4.5027667
+2143,52.1461667,4.5028133
+2144,52.1461817,4.5028583
+2145,52.1462050,4.5029483
+2146,52.1462167,4.5029917
+2147,52.1462283,4.5030367
+2148,52.1462433,4.5030833
+2149,52.1462633,4.5031267
+2150,52.1462800,4.5031717
+2151,52.1462917,4.5032150
+2152,52.1463067,4.5032583
+2153,52.1463217,4.5033000
+2154,52.1463333,4.5033417
+2155,52.1463433,4.5033867
+2156,52.1463567,4.5034317
+2157,52.1463717,4.5034750
+2158,52.1463850,4.5035217
+2159,52.1464000,4.5035683
+2160,52.1464133,4.5036167
+2161,52.1464267,4.5036633
+2162,52.1464400,4.5037117
+2163,52.1464550,4.5037567
+2164,52.1464850,4.5038450
+2165,52.1465017,4.5038917
+2166,52.1465167,4.5039383
+2167,52.1465333,4.5039850
+2168,52.1465500,4.5040283
+2169,52.1465650,4.5040717
+2170,52.1465817,4.5041150
+2171,52.1465967,4.5041600
+2172,52.1466117,4.5042083
+2173,52.1466250,4.5042550
+2174,52.1466417,4.5043000
+2175,52.1466583,4.5043417
+2176,52.1466750,4.5043833
+2177,52.1466933,4.5044283
+2178,52.1467300,4.5045217
+2179,52.1467483,4.5045700
+2180,52.1467650,4.5046200
+2181,52.1467800,4.5046683
+2182,52.1467950,4.5047167
+2183,52.1468100,4.5047650
+2184,52.1468267,4.5048117
+2185,52.1468433,4.5048583
+2186,52.1468600,4.5049050
+2187,52.1468767,4.5049533
+2188,52.1468933,4.5050017
+2189,52.1469100,4.5050483
+2190,52.1469283,4.5050933
+2191,52.1469467,4.5051367
+2192,52.1469817,4.5052267
+2193,52.1469983,4.5052717
+2194,52.1470150,4.5053167
+2195,52.1470317,4.5053633
+2196,52.1470483,4.5054067
+2197,52.1470667,4.5054500
+2198,52.1470850,4.5054917
+2199,52.1471017,4.5055350
+2200,52.1471200,4.5055800
+2201,52.1471383,4.5056233
+2202,52.1471550,4.5056667
+2203,52.1471733,4.5057100
+2204,52.1471900,4.5057533
+2205,52.1472083,4.5057950
+2206,52.1472250,4.5058350
+2207,52.1472417,4.5058750
+2208,52.1472583,4.5059133
+2209,52.1472750,4.5059517
+2210,52.1472900,4.5059917
+2211,52.1473067,4.5060317
+2212,52.1473250,4.5060683
+2213,52.1473400,4.5061067
+2214,52.1473567,4.5061450
+2215,52.1473733,4.5061817
+2216,52.1473900,4.5062200
+2217,52.1474050,4.5062600
+2218,52.1474217,4.5062950
+2219,52.1474350,4.5063300
+2220,52.1474500,4.5063650
+2221,52.1474800,4.5064367
+2222,52.1474950,4.5064700
+2223,52.1475100,4.5065050
+2224,52.1475317,4.5065433
+2225,52.1475483,4.5065783
+2226,52.1475650,4.5066150
+2227,52.1475833,4.5066533
+2228,52.1476017,4.5066933
+2229,52.1476200,4.5067317
+2230,52.1476400,4.5067683
+2231,52.1476583,4.5068067
+2232,52.1476750,4.5068467
+2233,52.1476917,4.5068867
+2234,52.1477083,4.5069250
+2235,52.1477250,4.5069600
+2236,52.1477417,4.5069950
+2237,52.1477583,4.5070317
+2238,52.1477750,4.5070683
+2239,52.1477917,4.5071067
+2240,52.1478100,4.5071433
+2241,52.1478283,4.5071817
+2242,52.1478467,4.5072183
+2243,52.1478650,4.5072567
+2244,52.1478817,4.5072950
+2245,52.1478983,4.5073350
+2246,52.1479167,4.5073733
+2247,52.1479333,4.5074117
+2248,52.1479517,4.5074483
+2249,52.1479700,4.5074867
+2250,52.1479900,4.5075250
+2251,52.1480083,4.5075650
+2252,52.1480283,4.5076067
+2253,52.1480467,4.5076467
+2254,52.1480683,4.5076867
+2255,52.1480900,4.5077250
+2256,52.1481100,4.5077650
+2257,52.1481300,4.5078033
+2258,52.1481500,4.5078417
+2259,52.1481683,4.5078800
+2260,52.1481900,4.5079183
+2261,52.1482100,4.5079567
+2262,52.1482300,4.5079933
+2263,52.1482483,4.5080283
+2264,52.1482683,4.5080600
+2265,52.1482850,4.5080933
+2266,52.1483033,4.5081267
+2267,52.1483200,4.5081583
+2268,52.1483367,4.5081917
+2269,52.1483550,4.5082217
+2270,52.1483717,4.5082517
+2271,52.1483900,4.5082800
+2272,52.1484067,4.5083117
+2273,52.1484233,4.5083433
+2274,52.1484417,4.5083733
+2275,52.1484583,4.5084050
+2276,52.1484767,4.5084350
+2277,52.1484933,4.5084633
+2278,52.1485117,4.5084900
+2279,52.1485267,4.5085167
+2280,52.1485433,4.5085417
+2281,52.1485583,4.5085667
+2282,52.1485750,4.5085900
+2283,52.1485917,4.5086183
+2284,52.1486083,4.5086450
+2285,52.1486250,4.5086717
+2286,52.1486417,4.5087000
+2287,52.1486583,4.5087283
+2288,52.1486767,4.5087600
+2289,52.1486933,4.5087900
+2290,52.1487100,4.5088183
+2291,52.1487267,4.5088467
+2292,52.1487450,4.5088767
+2293,52.1487617,4.5089050
+2294,52.1487783,4.5089317
+2295,52.1487950,4.5089583
+2296,52.1488117,4.5089867
+2297,52.1488300,4.5090167
+2298,52.1488483,4.5090483
+2299,52.1488667,4.5090783
+2300,52.1488867,4.5091100
+2301,52.1489050,4.5091417
+2302,52.1489250,4.5091733
+2303,52.1489433,4.5092033
+2304,52.1489633,4.5092317
+2305,52.1489817,4.5092617
+2306,52.1490000,4.5092900
+2307,52.1490183,4.5093200
+2308,52.1490400,4.5093483
+2309,52.1490600,4.5093783
+2310,52.1490817,4.5094083
+2311,52.1491017,4.5094367
+2312,52.1491233,4.5094650
+2313,52.1491433,4.5094967
+2314,52.1491650,4.5095267
+2315,52.1491867,4.5095533
+2316,52.1492083,4.5095800
+2317,52.1492317,4.5096033
+2318,52.1492567,4.5096250
+2319,52.1492783,4.5096483
+2320,52.1493017,4.5096700
+2321,52.1493267,4.5096917
+2322,52.1493517,4.5097133
+2323,52.1493767,4.5097383
+2324,52.1494033,4.5097633
+2325,52.1494283,4.5097900
+2326,52.1494533,4.5098200
+2327,52.1494817,4.5098467
+2328,52.1495067,4.5098733
+2329,52.1495300,4.5099050
+2330,52.1495550,4.5099317
+2331,52.1495783,4.5099617
+2332,52.1496017,4.5099950
+2333,52.1496233,4.5100250
+2334,52.1496483,4.5100550
+2335,52.1496717,4.5100850
+2336,52.1496967,4.5101117
+2337,52.1497217,4.5101417
+2338,52.1497450,4.5101717
+2339,52.1497700,4.5101983
+2340,52.1497933,4.5102267
+2341,52.1498167,4.5102550
+2342,52.1498417,4.5102817
+2343,52.1498650,4.5103100
+2344,52.1498900,4.5103350
+2345,52.1499150,4.5103617
+2346,52.1499400,4.5103933
+2347,52.1499650,4.5104267
+2348,52.1499900,4.5104633
+2349,52.1500150,4.5105000
+2350,52.1500367,4.5105383
+2351,52.1500550,4.5105800
+2352,52.1500717,4.5106233
+2353,52.1500900,4.5106667
+2354,52.1501100,4.5107067
+2355,52.1501333,4.5107417
+2356,52.1501583,4.5107733
+2357,52.1501850,4.5108033
+2358,52.1502117,4.5108333
+2359,52.1502350,4.5108650
+2360,52.1502617,4.5108933
+2361,52.1502850,4.5109217
+2362,52.1503117,4.5109517
+2363,52.1503383,4.5109800
+2364,52.1503667,4.5110100
+2365,52.1503967,4.5110400
+2366,52.1504250,4.5110683
+2367,52.1504517,4.5110967
+2368,52.1504800,4.5111250
+2369,52.1505083,4.5111533
+2370,52.1505350,4.5111817
+2371,52.1505633,4.5112083
+2372,52.1505900,4.5112333
+2373,52.1506150,4.5112567
+2374,52.1506400,4.5112800
+2375,52.1506650,4.5113033
+2376,52.1506917,4.5113267
+2377,52.1507150,4.5113500
+2378,52.1507433,4.5113733
+2379,52.1507700,4.5113983
+2380,52.1507983,4.5114233
+2381,52.1508250,4.5114483
+2382,52.1508517,4.5114717
+2383,52.1508783,4.5114950
+2384,52.1509050,4.5115150
+2385,52.1509300,4.5115350
+2386,52.1509567,4.5115533
+2387,52.1509817,4.5115700
+2388,52.1510083,4.5115883
+2389,52.1510367,4.5116017
+2390,52.1510650,4.5116150
+2391,52.1510933,4.5116250
+2392,52.1511233,4.5116350
+2393,52.1511517,4.5116433
+2394,52.1511800,4.5116567
+2395,52.1512083,4.5116700
+2396,52.1512350,4.5116850
+2397,52.1512633,4.5117033
+2398,52.1512900,4.5117250
+2399,52.1513183,4.5117450
+2400,52.1513450,4.5117700
+2401,52.1513717,4.5117933
+2402,52.1513983,4.5118200
+2403,52.1514250,4.5118467
+2404,52.1514517,4.5118717
+2405,52.1514783,4.5119000
+2406,52.1515033,4.5119283
+2407,52.1515283,4.5119600
+2408,52.1515517,4.5119917
+2409,52.1515750,4.5120233
+2410,52.1515983,4.5120517
+2411,52.1516250,4.5120767
+2412,52.1516517,4.5120983
+2413,52.1516817,4.5121183
+2414,52.1517117,4.5121383
+2415,52.1517417,4.5121583
+2416,52.1517700,4.5121767
+2417,52.1517967,4.5121967
+2418,52.1518250,4.5122183
+2419,52.1518533,4.5122383
+2420,52.1518800,4.5122600
+2421,52.1519067,4.5122783
+2422,52.1519350,4.5122983
+2423,52.1519650,4.5123183
+2424,52.1519950,4.5123333
+2425,52.1520233,4.5123500
+2426,52.1520517,4.5123667
+2427,52.1520817,4.5123817
+2428,52.1521100,4.5123983
+2429,52.1521367,4.5124133
+2430,52.1521650,4.5124283
+2431,52.1521917,4.5124467
+2432,52.1522167,4.5124650
+2433,52.1522417,4.5124817
+2434,52.1522650,4.5124950
+2435,52.1522900,4.5125083
+2436,52.1523150,4.5125233
+2437,52.1523400,4.5125300
+2438,52.1523650,4.5125417
+2439,52.1523917,4.5125583
+2440,52.1524183,4.5125733
+2441,52.1524450,4.5125883
+2442,52.1524733,4.5126000
+2443,52.1524983,4.5126133
+2444,52.1525233,4.5126267
+2445,52.1525450,4.5126417
+2446,52.1525717,4.5126550
+2447,52.1525967,4.5126683
+2448,52.1526217,4.5126783
+2449,52.1526483,4.5126917
+2450,52.1526733,4.5127067
+2451,52.1527017,4.5127200
+2452,52.1527300,4.5127317
+2453,52.1527567,4.5127417
+2454,52.1527867,4.5127533
+2455,52.1528167,4.5127633
+2456,52.1528450,4.5127717
+2457,52.1528750,4.5127817
+2458,52.1529050,4.5127950
+2459,52.1529333,4.5128067
+2460,52.1529633,4.5128183
+2461,52.1529933,4.5128267
+2462,52.1530217,4.5128350
+2463,52.1530517,4.5128450
+2464,52.1530800,4.5128550
+2465,52.1531367,4.5128717
+2466,52.1531650,4.5128767
+2467,52.1531950,4.5128783
+2468,52.1532250,4.5128800
+2469,52.1532533,4.5128767
+2470,52.1532817,4.5128683
+2471,52.1533117,4.5128667
+2472,52.1533400,4.5128650
+2473,52.1533700,4.5128617
+2474,52.1534017,4.5128600
+2475,52.1534350,4.5128667
+2476,52.1534683,4.5128750
+2477,52.1534983,4.5128783
+2478,52.1535300,4.5128817
+2479,52.1535617,4.5128883
+2480,52.1535917,4.5128917
+2481,52.1536217,4.5128983
+2482,52.1536517,4.5129050
+2483,52.1536817,4.5129067
+2484,52.1537117,4.5129150
+2485,52.1537417,4.5129233
+2486,52.1537700,4.5129317
+2487,52.1537967,4.5129383
+2488,52.1538233,4.5129467
+2489,52.1538483,4.5129517
+2490,52.1538750,4.5129583
+2491,52.1539000,4.5129617
+2492,52.1539267,4.5129667
+2493,52.1539533,4.5129750
+2494,52.1540000,4.5129867
+2495,52.1540250,4.5129900
+2496,52.1540500,4.5129933
+2497,52.1540733,4.5129967
+2498,52.1540933,4.5129983
+2499,52.1541150,4.5130000
+2500,52.1541333,4.5130050
+2501,52.1541500,4.5130083
+2502,52.1541633,4.5130117
+2503,52.1541750,4.5130167
+2504,52.1541800,4.5130217
+2505,52.1541783,4.5130267
+2506,52.1541783,4.5130300
+2507,52.1541833,4.5130300
+2508,52.1541867,4.5130267
+2509,52.1541850,4.5130167
+2510,52.1541750,4.5130100
+2511,52.1541550,4.5130083
+2512,52.1541300,4.5130067
+2513,52.1541017,4.5130033
+2514,52.1540717,4.5129983
+2515,52.1540417,4.5129933
+2516,52.1540117,4.5129850
+2517,52.1539800,4.5129783
+2518,52.1539483,4.5129750
+2519,52.1539183,4.5129700
+2520,52.1538900,4.5129617
+2521,52.1538617,4.5129567
+2522,52.1538350,4.5129517
+2523,52.1537983,4.5129417
+2524,52.1537900,4.5129333
+2525,52.1537900,4.5129233
+2526,52.1537917,4.5129217
+2527,52.1538033,4.5129250
+2528,52.1538217,4.5129317
+2529,52.1538433,4.5129367
+2530,52.1538650,4.5129400
+2531,52.1538867,4.5129467
+2532,52.1539100,4.5129533
+2533,52.1539367,4.5129633
+2534,52.1539600,4.5129717
+2535,52.1539867,4.5129767
+2536,52.1540117,4.5129833
+2537,52.1540417,4.5129900
+2538,52.1540683,4.5129967
+2539,52.1540917,4.5130000
+2540,52.1541167,4.5130067
+2541,52.1541417,4.5130117
+2542,52.1541650,4.5130150
+2543,52.1541900,4.5130200
+2544,52.1542133,4.5130233
+2545,52.1542400,4.5130250
+2546,52.1542650,4.5130367
+2547,52.1542917,4.5130467
+2548,52.1543183,4.5130567
+2549,52.1543433,4.5130650
+2550,52.1543667,4.5130700
+2551,52.1543900,4.5130750
+2552,52.1544150,4.5130817
+2553,52.1544383,4.5130867
+2554,52.1544617,4.5130917
+2555,52.1544850,4.5130933
+2556,52.1545083,4.5130883
+2557,52.1545283,4.5130817
+2558,52.1545483,4.5130733
+2559,52.1545667,4.5130617
+2560,52.1545850,4.5130517
+2561,52.1546050,4.5130400
+2562,52.1546433,4.5130150
+2563,52.1546633,4.5130083
+2564,52.1546800,4.5130000
+2565,52.1546950,4.5129983
+2566,52.1547117,4.5130067
+2567,52.1547283,4.5130083
+2568,52.1547433,4.5130083
+2569,52.1547533,4.5130083
+2570,52.1547583,4.5130150
+2571,52.1547567,4.5130183
+2572,52.1547600,4.5130150
+2573,52.1547617,4.5130133
+2574,52.1547633,4.5130133
+2575,52.1547633,4.5130150
+2576,52.1547633,4.5130183
+2577,52.1547633,4.5130217
+2578,52.1547633,4.5130233
+2579,52.1547633,4.5130267
+2580,52.1547633,4.5130300
+2581,52.1547633,4.5130317
+2582,52.1547617,4.5130350
+2583,52.1547617,4.5130367
Index: /src/gheat/__/var/pointsm.txt
===================================================================
--- /src/gheat/__/var/pointsm.txt	(revision 8853)
+++ /src/gheat/__/var/pointsm.txt	(revision 8853)
@@ -0,0 +1,1373 @@
+1,52.1406483,4.4585183
+2,52.1406567,4.4585233
+3,52.1406583,4.4585017
+4,52.1406333,4.4585400
+5,52.1406467,4.4585250
+6,52.1406017,4.4584817
+7,52.1405817,4.4585033
+8,52.1405750,4.4584600
+9,52.1405967,4.4585250
+10,52.1406233,4.4586050
+11,52.1406267,4.4586133
+12,52.1406433,4.4586033
+13,52.1406317,4.4585817
+14,52.1406783,4.4586217
+15,52.1406133,4.4585367
+16,52.1406567,4.4584950
+17,52.1406317,4.4584367
+18,52.1406083,4.4584117
+19,52.1406350,4.4585850
+20,52.1406983,4.4586667
+21,52.1406933,4.4581833
+22,52.1407667,4.4582617
+23,52.1407433,4.4583300
+24,52.1407683,4.4583483
+25,52.1407517,4.4583800
+26,52.1407350,4.4583817
+27,52.1407267,4.4583700
+28,52.1407283,4.4583517
+29,52.1407300,4.4583350
+30,52.1407283,4.4583200
+31,52.1407283,4.4583133
+32,52.1407317,4.4583050
+33,52.1407367,4.4582967
+34,52.1407383,4.4582883
+35,52.1407400,4.4582800
+36,52.1407467,4.4582700
+37,52.1407550,4.4582567
+38,52.1407650,4.4582433
+39,52.1407733,4.4582300
+40,52.1407783,4.4582200
+41,52.1407817,4.4582150
+42,52.1407767,4.4582250
+43,52.1407750,4.4582300
+44,52.1407683,4.4582517
+45,52.1407717,4.4582550
+46,52.1407733,4.4582450
+47,52.1407750,4.4582333
+48,52.1407767,4.4582200
+49,52.1407800,4.4582050
+50,52.1407883,4.4581950
+51,52.1407867,4.4582000
+52,52.1407850,4.4582033
+53,52.1407850,4.4582050
+54,52.1407850,4.4582067
+55,52.1407867,4.4582083
+56,52.1407900,4.4582100
+57,52.1407917,4.4582117
+58,52.1407917,4.4582133
+59,52.1407867,4.4582200
+60,52.1407817,4.4582267
+61,52.1407833,4.4582267
+62,52.1407817,4.4582250
+63,52.1407833,4.4582233
+64,52.1407867,4.4582217
+65,52.1407900,4.4582200
+66,52.1407917,4.4582183
+67,52.1407917,4.4582200
+68,52.1407933,4.4582183
+69,52.1407967,4.4582150
+70,52.1408000,4.4582133
+71,52.1408033,4.4582100
+72,52.1408067,4.4582067
+73,52.1408117,4.4582017
+74,52.1408133,4.4582000
+75,52.1408150,4.4581967
+76,52.1408150,4.4581933
+77,52.1408167,4.4581933
+78,52.1408167,4.4581917
+79,52.1408183,4.4581900
+80,52.1408200,4.4581900
+81,52.1408217,4.4581883
+82,52.1408233,4.4581867
+83,52.1408250,4.4581833
+84,52.1408233,4.4581817
+85,52.1408217,4.4581817
+86,52.1408217,4.4581833
+87,52.1408200,4.4581833
+88,52.1408200,4.4581850
+89,52.1408183,4.4581850
+90,52.1408200,4.4581867
+91,52.1408217,4.4581867
+92,52.1408233,4.4581883
+93,52.1408217,4.4581917
+94,52.1408200,4.4581917
+95,52.1408183,4.4581917
+96,52.1408067,4.4582000
+97,52.1407983,4.4582050
+98,52.1407900,4.4582083
+99,52.1407850,4.4582133
+100,52.1407817,4.4582217
+101,52.1407783,4.4582283
+102,52.1407767,4.4582333
+103,52.1407767,4.4582350
+104,52.1407767,4.4582383
+105,52.1407767,4.4582400
+106,52.1407767,4.4582433
+107,52.1407767,4.4582450
+108,52.1407750,4.4582467
+109,52.1407883,4.4582317
+110,52.1407867,4.4582333
+111,52.1407850,4.4582350
+112,52.1407833,4.4582367
+113,52.1407817,4.4582333
+114,52.1407850,4.4582283
+115,52.1408200,4.4581950
+116,52.1408300,4.4581917
+117,52.1408267,4.4582000
+118,52.1408233,4.4582017
+119,52.1408200,4.4582017
+120,52.1408183,4.4582033
+121,52.1408150,4.4582050
+122,52.1408133,4.4582050
+123,52.1408250,4.4582167
+124,52.1408367,4.4582350
+125,52.1408283,4.4582383
+126,52.1408117,4.4582417
+127,52.1408067,4.4582433
+128,52.1407850,4.4582500
+129,52.1407733,4.4582500
+130,52.1407800,4.4582517
+131,52.1407850,4.4582517
+132,52.1407817,4.4582517
+133,52.1407800,4.4582550
+134,52.1407800,4.4582567
+135,52.1407800,4.4582583
+136,52.1407767,4.4582550
+137,52.1407633,4.4582533
+138,52.1407617,4.4582550
+139,52.1407583,4.4582583
+140,52.1407550,4.4582617
+141,52.1407533,4.4582650
+142,52.1407533,4.4582683
+143,52.1407517,4.4582717
+144,52.1407500,4.4582750
+145,52.1407483,4.4582783
+146,52.1407467,4.4582783
+147,52.1407467,4.4582767
+148,52.1407467,4.4582733
+149,52.1407450,4.4582717
+150,52.1407450,4.4582700
+151,52.1407450,4.4582667
+152,52.1407467,4.4582650
+153,52.1407467,4.4582633
+154,52.1407467,4.4582600
+155,52.1407483,4.4582583
+156,52.1407483,4.4582567
+157,52.1407467,4.4582550
+158,52.1407450,4.4582533
+159,52.1407433,4.4582517
+160,52.1407417,4.4582517
+161,52.1407417,4.4582500
+162,52.1407400,4.4582467
+163,52.1407383,4.4582433
+164,52.1407383,4.4582400
+165,52.1407350,4.4582383
+166,52.1407317,4.4582383
+167,52.1407300,4.4582383
+168,52.1407283,4.4582383
+169,52.1407283,4.4582367
+170,52.1407250,4.4582333
+171,52.1407250,4.4582300
+172,52.1407233,4.4582267
+173,52.1407217,4.4582233
+174,52.1407217,4.4582217
+175,52.1407217,4.4582183
+176,52.1407200,4.4582167
+177,52.1407200,4.4582150
+178,52.1407183,4.4582133
+179,52.1407150,4.4582133
+180,52.1407133,4.4582133
+181,52.1407117,4.4582133
+182,52.1407100,4.4582133
+183,52.1407083,4.4582150
+184,52.1407083,4.4582167
+185,52.1407083,4.4582200
+186,52.1407083,4.4582217
+187,52.1407083,4.4582233
+188,52.1407083,4.4582267
+189,52.1407083,4.4582300
+190,52.1407083,4.4582317
+191,52.1407083,4.4582333
+192,52.1407083,4.4582367
+193,52.1407100,4.4582383
+194,52.1407100,4.4582400
+195,52.1407100,4.4582417
+196,52.1407117,4.4582417
+197,52.1407133,4.4582433
+198,52.1407067,4.4582383
+199,52.1407067,4.4582433
+200,52.1407017,4.4582767
+201,52.1407083,4.4582767
+202,52.1407100,4.4582717
+203,52.1407117,4.4582633
+204,52.1407117,4.4582567
+205,52.1407050,4.4582267
+206,52.1407033,4.4582133
+207,52.1407033,4.4582050
+208,52.1407017,4.4582000
+209,52.1407033,4.4581950
+210,52.1407033,4.4581900
+211,52.1407050,4.4581867
+212,52.1407067,4.4581833
+213,52.1407100,4.4581817
+214,52.1407150,4.4581783
+215,52.1407183,4.4581767
+216,52.1407217,4.4581767
+217,52.1407250,4.4581800
+218,52.1407267,4.4581833
+219,52.1407267,4.4581883
+220,52.1407267,4.4581933
+221,52.1407250,4.4582000
+222,52.1407250,4.4582067
+223,52.1407250,4.4582117
+224,52.1407250,4.4582167
+225,52.1407250,4.4582217
+226,52.1407267,4.4582250
+227,52.1407267,4.4582267
+228,52.1407267,4.4582283
+229,52.1407283,4.4582283
+230,52.1407283,4.4582267
+231,52.1407283,4.4582250
+232,52.1407267,4.4582233
+233,52.1407267,4.4582217
+234,52.1407233,4.4582200
+235,52.1407217,4.4582200
+236,52.1407183,4.4582217
+237,52.1407167,4.4582217
+238,52.1407133,4.4582233
+239,52.1407100,4.4582250
+240,52.1407067,4.4582283
+241,52.1407050,4.4582300
+242,52.1407050,4.4582317
+243,52.1407050,4.4582333
+244,52.1407050,4.4582350
+245,52.1407033,4.4582367
+246,52.1407033,4.4582383
+247,52.1407017,4.4582400
+248,52.1407017,4.4582417
+249,52.1407017,4.4582433
+250,52.1407017,4.4582450
+251,52.1407000,4.4582467
+252,52.1406983,4.4582467
+253,52.1406983,4.4582483
+254,52.1406967,4.4582517
+255,52.1406967,4.4582567
+256,52.1406950,4.4582617
+257,52.1407000,4.4582750
+258,52.1407017,4.4582783
+259,52.1407017,4.4582817
+260,52.1407117,4.4582833
+261,52.1407067,4.4582867
+262,52.1407033,4.4582933
+263,52.1407000,4.4583033
+264,52.1406983,4.4583117
+265,52.1406917,4.4583183
+266,52.1406867,4.4583250
+267,52.1406833,4.4583300
+268,52.1406783,4.4583367
+269,52.1406750,4.4583433
+270,52.1406700,4.4583500
+271,52.1406650,4.4583550
+272,52.1406567,4.4583633
+273,52.1406550,4.4583650
+274,52.1406517,4.4583667
+275,52.1406483,4.4583650
+276,52.1406467,4.4583650
+277,52.1406450,4.4583633
+278,52.1406450,4.4583617
+279,52.1406450,4.4583583
+280,52.1406433,4.4583550
+281,52.1406450,4.4583517
+282,52.1406450,4.4583483
+283,52.1406467,4.4583433
+284,52.1406483,4.4583383
+285,52.1406517,4.4583333
+286,52.1406550,4.4583267
+287,52.1406583,4.4583217
+288,52.1406600,4.4583167
+289,52.1406600,4.4583117
+290,52.1406633,4.4583083
+291,52.1406667,4.4583067
+292,52.1406683,4.4583050
+293,52.1406700,4.4583033
+294,52.1406733,4.4583017
+295,52.1406767,4.4583000
+296,52.1406800,4.4582983
+297,52.1406833,4.4582967
+298,52.1406883,4.4582967
+299,52.1406917,4.4582967
+300,52.1406950,4.4582983
+301,52.1406983,4.4582983
+302,52.1407017,4.4582967
+303,52.1407067,4.4582950
+304,52.1407117,4.4582933
+305,52.1407167,4.4582917
+306,52.1407200,4.4582900
+307,52.1407250,4.4582867
+308,52.1407283,4.4582833
+309,52.1407333,4.4582800
+310,52.1407367,4.4582783
+311,52.1407400,4.4582750
+312,52.1407483,4.4582700
+313,52.1407517,4.4582683
+314,52.1407550,4.4582683
+315,52.1407583,4.4582667
+316,52.1407650,4.4582633
+317,52.1407700,4.4582600
+318,52.1407733,4.4582583
+319,52.1407800,4.4582533
+320,52.1407833,4.4582517
+321,52.1407833,4.4582500
+322,52.1407817,4.4582483
+323,52.1407817,4.4582467
+324,52.1407800,4.4582467
+325,52.1407800,4.4582450
+326,52.1407817,4.4582433
+327,52.1407817,4.4582417
+328,52.1407850,4.4582417
+329,52.1407850,4.4582433
+330,52.1407833,4.4582483
+331,52.1407817,4.4582533
+332,52.1407833,4.4582533
+333,52.1407867,4.4582500
+334,52.1407883,4.4582483
+335,52.1407917,4.4582450
+336,52.1407933,4.4582417
+337,52.1407983,4.4582350
+338,52.1408033,4.4582300
+339,52.1408100,4.4582233
+340,52.1408133,4.4582183
+341,52.1408150,4.4582167
+342,52.1408133,4.4582150
+343,52.1408100,4.4582167
+344,52.1408050,4.4582200
+345,52.1408000,4.4582217
+346,52.1407967,4.4582233
+347,52.1407933,4.4582250
+348,52.1407900,4.4582250
+349,52.1407883,4.4582233
+350,52.1407850,4.4582217
+351,52.1407833,4.4582200
+352,52.1407833,4.4582183
+353,52.1407817,4.4582167
+354,52.1407833,4.4582117
+355,52.1407850,4.4582083
+356,52.1407867,4.4582067
+357,52.1407867,4.4582033
+358,52.1407867,4.4582017
+359,52.1407917,4.4581950
+360,52.1407967,4.4581917
+361,52.1408000,4.4581900
+362,52.1408017,4.4581883
+363,52.1408033,4.4581883
+364,52.1408050,4.4581883
+365,52.1408033,4.4581867
+366,52.1408067,4.4581933
+367,52.1408017,4.4581983
+368,52.1408000,4.4582033
+369,52.1408017,4.4582050
+370,52.1408000,4.4582083
+371,52.1407983,4.4582083
+372,52.1407950,4.4582083
+373,52.1407900,4.4582150
+374,52.1407717,4.4582300
+375,52.1407550,4.4582467
+376,52.1407400,4.4582650
+377,52.1407250,4.4582817
+378,52.1407133,4.4582933
+379,52.1407083,4.4583000
+380,52.1407033,4.4583050
+381,52.1407000,4.4583067
+382,52.1406967,4.4583067
+383,52.1406950,4.4583083
+384,52.1406917,4.4583117
+385,52.1406900,4.4583117
+386,52.1406883,4.4583117
+387,52.1406867,4.4583117
+388,52.1406883,4.4583100
+389,52.1406900,4.4583083
+390,52.1407017,4.4583017
+391,52.1407067,4.4582967
+392,52.1407117,4.4582917
+393,52.1407150,4.4582867
+394,52.1407200,4.4582817
+395,52.1407300,4.4582717
+396,52.1407300,4.4582683
+397,52.1407283,4.4582667
+398,52.1407283,4.4582650
+399,52.1407267,4.4582717
+400,52.1407250,4.4582733
+401,52.1407183,4.4582800
+402,52.1407133,4.4582833
+403,52.1407100,4.4582800
+404,52.1407083,4.4582800
+405,52.1407067,4.4582783
+406,52.1407050,4.4582783
+407,52.1407050,4.4582800
+408,52.1407050,4.4582817
+409,52.1407033,4.4582817
+410,52.1407000,4.4582833
+411,52.1406983,4.4582850
+412,52.1406967,4.4582867
+413,52.1406950,4.4582867
+414,52.1406933,4.4582867
+415,52.1406933,4.4582850
+416,52.1406917,4.4582850
+417,52.1406900,4.4582850
+418,52.1406900,4.4582867
+419,52.1406867,4.4582883
+420,52.1406850,4.4582900
+421,52.1406817,4.4582967
+422,52.1406783,4.4583050
+423,52.1406733,4.4583117
+424,52.1406717,4.4583150
+425,52.1406700,4.4583167
+426,52.1406700,4.4583133
+427,52.1406717,4.4583117
+428,52.1406750,4.4583100
+429,52.1406783,4.4583067
+430,52.1406817,4.4583017
+431,52.1406867,4.4582967
+432,52.1406900,4.4582950
+433,52.1406917,4.4582933
+434,52.1406933,4.4582900
+435,52.1406967,4.4582850
+436,52.1407000,4.4582800
+437,52.1407033,4.4582750
+438,52.1407083,4.4582683
+439,52.1407100,4.4582617
+440,52.1407117,4.4582583
+441,52.1407150,4.4582550
+442,52.1407167,4.4582500
+443,52.1407183,4.4582450
+444,52.1407200,4.4582417
+445,52.1407217,4.4582383
+446,52.1406883,4.4582567
+447,52.1406550,4.4582767
+448,52.1406450,4.4582817
+449,52.1406367,4.4582867
+450,52.1406283,4.4582900
+451,52.1406217,4.4582967
+452,52.1406150,4.4583033
+453,52.1406067,4.4583167
+454,52.1406033,4.4583233
+455,52.1406033,4.4583283
+456,52.1406083,4.4583300
+457,52.1406117,4.4583300
+458,52.1406133,4.4583250
+459,52.1406167,4.4583217
+460,52.1406233,4.4583100
+461,52.1406283,4.4582967
+462,52.1406350,4.4582800
+463,52.1406417,4.4582633
+464,52.1406533,4.4582383
+465,52.1406567,4.4582317
+466,52.1406583,4.4582267
+467,52.1406600,4.4582200
+468,52.1406600,4.4582167
+469,52.1406600,4.4582150
+470,52.1406567,4.4582150
+471,52.1406550,4.4582150
+472,52.1406533,4.4582133
+473,52.1406550,4.4582133
+474,52.1406550,4.4582167
+475,52.1406650,4.4582067
+476,52.1406617,4.4582200
+477,52.1406617,4.4582183
+478,52.1406633,4.4582083
+479,52.1406683,4.4582050
+480,52.1406733,4.4582050
+481,52.1406767,4.4582033
+482,52.1406800,4.4582067
+483,52.1406867,4.4582083
+484,52.1406967,4.4582067
+485,52.1407083,4.4582100
+486,52.1407200,4.4582217
+487,52.1407317,4.4582400
+488,52.1407467,4.4582617
+489,52.1407633,4.4582800
+490,52.1407833,4.4582967
+491,52.1408050,4.4583117
+492,52.1408267,4.4583250
+493,52.1408483,4.4583383
+494,52.1408717,4.4583517
+495,52.1408967,4.4583650
+496,52.1409200,4.4583800
+497,52.1409433,4.4583983
+498,52.1409683,4.4584167
+499,52.1409950,4.4584350
+500,52.1410200,4.4584550
+501,52.1410450,4.4584750
+502,52.1410667,4.4584950
+503,52.1410983,4.4585117
+504,52.1411233,4.4585250
+505,52.1411467,4.4585400
+506,52.1411700,4.4585583
+507,52.1411917,4.4585750
+508,52.1412150,4.4585917
+509,52.1412350,4.4586117
+510,52.1412517,4.4586350
+511,52.1412633,4.4586617
+512,52.1412717,4.4586933
+513,52.1412750,4.4587300
+514,52.1412750,4.4587683
+515,52.1412767,4.4588117
+516,52.1412800,4.4589017
+517,52.1412783,4.4589450
+518,52.1412733,4.4589883
+519,52.1412633,4.4590300
+520,52.1412550,4.4590700
+521,52.1412467,4.4591117
+522,52.1412367,4.4591533
+523,52.1412267,4.4591950
+524,52.1412183,4.4592367
+525,52.1412117,4.4592783
+526,52.1412050,4.4593217
+527,52.1411967,4.4593683
+528,52.1411867,4.4594133
+529,52.1411733,4.4594600
+530,52.1411600,4.4595067
+531,52.1411450,4.4595533
+532,52.1411300,4.4595983
+533,52.1411167,4.4596433
+534,52.1411017,4.4596900
+535,52.1410850,4.4597367
+536,52.1410683,4.4597850
+537,52.1410533,4.4598333
+538,52.1410367,4.4598817
+539,52.1410217,4.4599300
+540,52.1410083,4.4599783
+541,52.1410383,4.4601700
+542,52.1410633,4.4602050
+543,52.1410850,4.4602433
+544,52.1411017,4.4602867
+545,52.1411117,4.4603333
+546,52.1411267,4.4605517
+547,52.1411267,4.4605850
+548,52.1411233,4.4606183
+549,52.1411183,4.4607083
+550,52.1411167,4.4607383
+551,52.1411167,4.4607650
+552,52.1411150,4.4607867
+553,52.1411133,4.4608033
+554,52.1411133,4.4608167
+555,52.1411133,4.4608300
+556,52.1411133,4.4608400
+557,52.1411133,4.4608417
+558,52.1411117,4.4608400
+559,52.1411150,4.4608517
+560,52.1411150,4.4608600
+561,52.1411150,4.4608617
+562,52.1411150,4.4608633
+563,52.1411150,4.4608783
+564,52.1411217,4.4609050
+565,52.1412400,4.4610400
+566,52.1412700,4.4610350
+567,52.1417433,4.4609450
+568,52.1417717,4.4609383
+569,52.1418017,4.4609317
+570,52.1418300,4.4609250
+571,52.1418883,4.4609167
+572,52.1419183,4.4609117
+573,52.1419483,4.4609050
+574,52.1419783,4.4609000
+575,52.1420083,4.4608933
+576,52.1420400,4.4608883
+577,52.1420733,4.4608833
+578,52.1421067,4.4608750
+579,52.1421400,4.4608667
+580,52.1421733,4.4608567
+581,52.1422067,4.4608467
+582,52.1422383,4.4608383
+583,52.1422717,4.4608283
+584,52.1423033,4.4608183
+585,52.1423667,4.4607950
+586,52.1423983,4.4607833
+587,52.1424317,4.4607717
+588,52.1424633,4.4607600
+589,52.1425850,4.4607183
+590,52.1426167,4.4607100
+591,52.1426467,4.4607033
+592,52.1426783,4.4606950
+593,52.1427083,4.4606850
+594,52.1427383,4.4606750
+595,52.1427983,4.4606533
+596,52.1428283,4.4606483
+597,52.1429167,4.4606233
+598,52.1429467,4.4606150
+599,52.1430350,4.4605883
+600,52.1430650,4.4605817
+601,52.1430950,4.4605750
+602,52.1432217,4.4605517
+603,52.1432517,4.4605433
+604,52.1432817,4.4605350
+605,52.1433417,4.4605200
+606,52.1433717,4.4605133
+607,52.1434017,4.4605033
+608,52.1434300,4.4604933
+609,52.1434600,4.4604867
+610,52.1434883,4.4604783
+611,52.1438317,4.4603917
+612,52.1438600,4.4603817
+613,52.1438883,4.4603717
+614,52.1463517,4.4655617
+615,52.1463533,4.4655950
+616,52.1463533,4.4656283
+617,52.1463567,4.4656617
+618,52.1463633,4.4657633
+619,52.1463667,4.4658000
+620,52.1463750,4.4659100
+621,52.1463767,4.4659467
+622,52.1463783,4.4659833
+623,52.1463800,4.4660217
+624,52.1463817,4.4660583
+625,52.1463850,4.4660950
+626,52.1463867,4.4661283
+627,52.1463867,4.4661633
+628,52.1463883,4.4661983
+629,52.1463883,4.4662350
+630,52.1463900,4.4662733
+631,52.1463900,4.4663117
+632,52.1463917,4.4663517
+633,52.1463933,4.4663933
+634,52.1463950,4.4664367
+635,52.1463983,4.4664800
+636,52.1464000,4.4665217
+637,52.1464017,4.4665667
+638,52.1464050,4.4666117
+639,52.1464083,4.4666583
+640,52.1464133,4.4667033
+641,52.1464817,4.4679467
+642,52.1464850,4.4679867
+643,52.1464867,4.4680833
+644,52.1464833,4.4680917
+645,52.1464817,4.4680950
+646,52.1464467,4.4681517
+647,52.1464367,4.4681667
+648,52.1462233,4.4682300
+649,52.1462133,4.4682300
+650,52.1462017,4.4682317
+651,52.1461800,4.4682367
+652,52.1461533,4.4682417
+653,52.1461200,4.4682483
+654,52.1460833,4.4682583
+655,52.1460450,4.4682683
+656,52.1460067,4.4682783
+657,52.1458917,4.4683083
+658,52.1458550,4.4683150
+659,52.1458183,4.4683217
+660,52.1457500,4.4683383
+661,52.1457167,4.4683450
+662,52.1456833,4.4683500
+663,52.1456200,4.4683583
+664,52.1455867,4.4683617
+665,52.1454583,4.4683767
+666,52.1454250,4.4683800
+667,52.1453933,4.4683833
+668,52.1453633,4.4683883
+669,52.1453033,4.4684017
+670,52.1452733,4.4684067
+671,52.1452433,4.4684100
+672,52.1452150,4.4684133
+673,52.1451850,4.4684167
+674,52.1451550,4.4684217
+675,52.1451267,4.4684300
+676,52.1450983,4.4684367
+677,52.1450700,4.4684433
+678,52.1450400,4.4684500
+679,52.1450117,4.4684567
+680,52.1447983,4.4684900
+681,52.1447683,4.4684950
+682,52.1447367,4.4685033
+683,52.1447067,4.4685117
+684,52.1446750,4.4685183
+685,52.1446433,4.4685233
+686,52.1446133,4.4685283
+687,52.1445017,4.4685450
+688,52.1444750,4.4685483
+689,52.1444500,4.4685517
+690,52.1444033,4.4685617
+691,52.1443783,4.4685683
+692,52.1443550,4.4685783
+693,52.1442950,4.4686233
+694,52.1442750,4.4686367
+695,52.1442267,4.4686567
+696,52.1442033,4.4686650
+697,52.1441767,4.4686717
+698,52.1438017,4.4687467
+699,52.1437733,4.4687517
+700,52.1435550,4.4687850
+701,52.1435300,4.4687900
+702,52.1435067,4.4687950
+703,52.1434583,4.4688000
+704,52.1434350,4.4688033
+705,52.1434100,4.4688083
+706,52.1433133,4.4688267
+707,52.1432900,4.4688300
+708,52.1432683,4.4688367
+709,52.1432467,4.4688467
+710,52.1432283,4.4688633
+711,52.1432117,4.4688900
+712,52.1432033,4.4689233
+713,52.1431983,4.4689633
+714,52.1431967,4.4690067
+715,52.1431967,4.4690517
+716,52.1431933,4.4690983
+717,52.1431933,4.4691467
+718,52.1431967,4.4692417
+719,52.1432000,4.4692883
+720,52.1432017,4.4693317
+721,52.1432067,4.4694200
+722,52.1432083,4.4694633
+723,52.1432117,4.4695033
+724,52.1432150,4.4695433
+725,52.1432233,4.4696183
+726,52.1432283,4.4696533
+727,52.1432350,4.4696867
+728,52.1432467,4.4697150
+729,52.1432650,4.4697367
+730,52.1432850,4.4697517
+731,52.1433050,4.4697633
+732,52.1433267,4.4697683
+733,52.1433517,4.4697700
+734,52.1436767,4.4697333
+735,52.1437200,4.4697267
+736,52.1443683,4.4701633
+737,52.1443667,4.4701900
+738,52.1443650,4.4702133
+739,52.1443650,4.4702500
+740,52.1443650,4.4702633
+741,52.1443667,4.4702717
+742,52.1443650,4.4702750
+743,52.1443717,4.4702650
+744,52.1443750,4.4702633
+745,52.1443767,4.4702617
+746,52.1443800,4.4702483
+747,52.1443883,4.4702300
+748,52.1443883,4.4702267
+749,52.1443883,4.4702217
+750,52.1443867,4.4702167
+751,52.1443817,4.4702167
+752,52.1443783,4.4702150
+753,52.1443733,4.4702150
+754,52.1443683,4.4702167
+755,52.1443650,4.4702183
+756,52.1443617,4.4702217
+757,52.1443550,4.4702400
+758,52.1443550,4.4702450
+759,52.1443550,4.4702517
+760,52.1443550,4.4702583
+761,52.1443567,4.4702650
+762,52.1443617,4.4702783
+763,52.1443633,4.4702817
+764,52.1443700,4.4702800
+765,52.1443733,4.4702783
+766,52.1443767,4.4702800
+767,52.1443783,4.4702783
+768,52.1443800,4.4702833
+769,52.1443767,4.4702817
+770,52.1443767,4.4702783
+771,52.1443767,4.4702767
+772,52.1443767,4.4702750
+773,52.1443800,4.4702783
+774,52.1443817,4.4702800
+775,52.1443833,4.4702817
+776,52.1443850,4.4702833
+777,52.1444000,4.4702833
+778,52.1444017,4.4702750
+779,52.1444033,4.4702683
+780,52.1443967,4.4702617
+781,52.1443983,4.4702650
+782,52.1444017,4.4702667
+783,52.1444050,4.4702667
+784,52.1444083,4.4702667
+785,52.1444067,4.4702667
+786,52.1444050,4.4702733
+787,52.1444033,4.4702900
+788,52.1443983,4.4703133
+789,52.1443883,4.4703433
+790,52.1443683,4.4703733
+791,52.1443383,4.4703933
+792,52.1443050,4.4704033
+793,52.1442733,4.4704083
+794,52.1442417,4.4704133
+795,52.1438333,4.4704600
+796,52.1438050,4.4704617
+797,52.1433917,4.4705267
+798,52.1433633,4.4705267
+799,52.1433350,4.4705283
+800,52.1432517,4.4705383
+801,52.1431967,4.4705550
+802,52.1431683,4.4705633
+803,52.1431400,4.4705700
+804,52.1431100,4.4705750
+805,52.1430817,4.4705783
+806,52.1430533,4.4705817
+807,52.1430250,4.4705867
+808,52.1429967,4.4705933
+809,52.1429700,4.4706000
+810,52.1429433,4.4706050
+811,52.1429183,4.4706083
+812,52.1428933,4.4706117
+813,52.1428700,4.4706167
+814,52.1428467,4.4706217
+815,52.1428250,4.4706250
+816,52.1428050,4.4706267
+817,52.1427700,4.4706267
+818,52.1427550,4.4706233
+819,52.1427417,4.4706200
+820,52.1427133,4.4706133
+821,52.1427100,4.4706133
+822,52.1427117,4.4706133
+823,52.1427150,4.4706100
+824,52.1427167,4.4706067
+825,52.1427200,4.4706033
+826,52.1427217,4.4705967
+827,52.1427233,4.4705933
+828,52.1427250,4.4705917
+829,52.1427267,4.4705917
+830,52.1427267,4.4705933
+831,52.1427267,4.4705950
+832,52.1427250,4.4705983
+833,52.1427217,4.4706017
+834,52.1427200,4.4706050
+835,52.1426967,4.4706283
+836,52.1426567,4.4706617
+837,52.1426133,4.4706800
+838,52.1425950,4.4706983
+839,52.1425683,4.4707433
+840,52.1425383,4.4709333
+841,52.1425400,4.4709633
+842,52.1425433,4.4709950
+843,52.1425433,4.4710250
+844,52.1425483,4.4710517
+845,52.1425533,4.4710783
+846,52.1425667,4.4712067
+847,52.1425683,4.4712350
+848,52.1425700,4.4712617
+849,52.1425717,4.4712933
+850,52.1425783,4.4713617
+851,52.1425833,4.4713967
+852,52.1425833,4.4714367
+853,52.1425817,4.4714783
+854,52.1425817,4.4715167
+855,52.1425833,4.4715550
+856,52.1425817,4.4715917
+857,52.1425817,4.4716700
+858,52.1425817,4.4717083
+859,52.1425833,4.4717450
+860,52.1425917,4.4718867
+861,52.1425950,4.4719217
+862,52.1425950,4.4719533
+863,52.1425967,4.4719833
+864,52.1425983,4.4720150
+865,52.1426033,4.4720800
+866,52.1426067,4.4721117
+867,52.1426083,4.4721467
+868,52.1426083,4.4721800
+869,52.1426100,4.4722150
+870,52.1426100,4.4722483
+871,52.1426100,4.4722817
+872,52.1426117,4.4723167
+873,52.1426133,4.4723500
+874,52.1426150,4.4723817
+875,52.1426167,4.4724133
+876,52.1426200,4.4724800
+877,52.1426250,4.4725450
+878,52.1426300,4.4725767
+879,52.1426350,4.4726067
+880,52.1426417,4.4726717
+881,52.1426433,4.4727050
+882,52.1426467,4.4727367
+883,52.1426500,4.4727683
+884,52.1426500,4.4728017
+885,52.1426500,4.4728383
+886,52.1426450,4.4728750
+887,52.1426317,4.4729083
+888,52.1425917,4.4729633
+889,52.1425683,4.4729800
+890,52.1425417,4.4729867
+891,52.1425167,4.4729900
+892,52.1424917,4.4729900
+893,52.1424650,4.4729967
+894,52.1424383,4.4730017
+895,52.1423883,4.4730033
+896,52.1423617,4.4730083
+897,52.1423350,4.4730117
+898,52.1423067,4.4730150
+899,52.1422800,4.4730183
+900,52.1422517,4.4730233
+901,52.1421950,4.4730300
+902,52.1421683,4.4730350
+903,52.1421417,4.4730400
+904,52.1421133,4.4730483
+905,52.1420867,4.4730517
+906,52.1420567,4.4730550
+907,52.1420283,4.4730600
+908,52.1420017,4.4730633
+909,52.1419750,4.4730650
+910,52.1419467,4.4730683
+911,52.1419183,4.4730717
+912,52.1418900,4.4730750
+913,52.1418617,4.4730783
+914,52.1418333,4.4730817
+915,52.1417767,4.4730883
+916,52.1417500,4.4730950
+917,52.1417233,4.4731017
+918,52.1416967,4.4731067
+919,52.1416700,4.4731133
+920,52.1416417,4.4731183
+921,52.1416133,4.4731233
+922,52.1415850,4.4731300
+923,52.1415583,4.4731367
+924,52.1415317,4.4731450
+925,52.1415067,4.4731517
+926,52.1414800,4.4731583
+927,52.1414533,4.4731667
+928,52.1414267,4.4731817
+929,52.1413783,4.4732317
+930,52.1413583,4.4732633
+931,52.1413350,4.4733383
+932,52.1413300,4.4733783
+933,52.1413317,4.4734200
+934,52.1413350,4.4734667
+935,52.1413400,4.4735150
+936,52.1413467,4.4735617
+937,52.1413517,4.4736100
+938,52.1413600,4.4736550
+939,52.1413717,4.4737467
+940,52.1413800,4.4737950
+941,52.1413867,4.4738417
+942,52.1413917,4.4738883
+943,52.1413967,4.4739367
+944,52.1414033,4.4739850
+945,52.1414083,4.4740350
+946,52.1414167,4.4740850
+947,52.1414300,4.4741867
+948,52.1414483,4.4743383
+949,52.1414533,4.4743900
+950,52.1414583,4.4744400
+951,52.1414817,4.4746833
+952,52.1414900,4.4747333
+953,52.1414967,4.4747833
+954,52.1415033,4.4748317
+955,52.1415150,4.4749267
+956,52.1415183,4.4749750
+957,52.1415233,4.4750233
+958,52.1415300,4.4750717
+959,52.1415350,4.4751183
+960,52.1415417,4.4751667
+961,52.1415483,4.4752133
+962,52.1415550,4.4752617
+963,52.1415667,4.4753583
+964,52.1416033,4.4756800
+965,52.1416000,4.4757367
+966,52.1415983,4.4757900
+967,52.1416000,4.4758433
+968,52.1416033,4.4758933
+969,52.1416067,4.4759417
+970,52.1416117,4.4759900
+971,52.1416183,4.4760383
+972,52.1416217,4.4760867
+973,52.1416267,4.4761333
+974,52.1416333,4.4761833
+975,52.1416483,4.4762833
+976,52.1416583,4.4763300
+977,52.1416683,4.4763767
+978,52.1416767,4.4764217
+979,52.1416833,4.4764667
+980,52.1416917,4.4765117
+981,52.1417017,4.4765550
+982,52.1417100,4.4765967
+983,52.1417167,4.4766400
+984,52.1417217,4.4766850
+985,52.1417250,4.4767333
+986,52.1417117,4.4768317
+987,52.1416917,4.4768700
+988,52.1416650,4.4768983
+989,52.1416350,4.4769200
+990,52.1416033,4.4769417
+991,52.1415717,4.4769650
+992,52.1415433,4.4769850
+993,52.1415133,4.4770067
+994,52.1414833,4.4770300
+995,52.1414533,4.4770517
+996,52.1414250,4.4770733
+997,52.1413950,4.4770967
+998,52.1413667,4.4771183
+999,52.1413367,4.4771417
+1000,52.1413083,4.4771667
+1001,52.1412800,4.4771917
+1002,52.1412517,4.4772183
+1003,52.1412217,4.4772450
+1004,52.1401717,4.4812750
+1005,52.1401883,4.4813150
+1006,52.1403367,4.4817250
+1007,52.1403550,4.4817700
+1008,52.1403733,4.4818150
+1009,52.1404300,4.4819467
+1010,52.1404667,4.4820333
+1011,52.1417567,4.4847533
+1012,52.1417583,4.4847900
+1013,52.1417583,4.4848267
+1014,52.1417600,4.4848633
+1015,52.1417633,4.4848967
+1016,52.1417650,4.4849317
+1017,52.1417683,4.4849667
+1018,52.1417733,4.4850367
+1019,52.1417767,4.4850733
+1020,52.1417817,4.4851933
+1021,52.1417817,4.4852350
+1022,52.1417817,4.4852800
+1023,52.1417783,4.4853250
+1024,52.1417700,4.4853700
+1025,52.1417367,4.4854567
+1026,52.1417150,4.4855017
+1027,52.1416917,4.4855450
+1028,52.1416617,4.4855917
+1029,52.1422267,4.4903483
+1030,52.1422567,4.4904483
+1031,52.1422717,4.4904967
+1032,52.1423017,4.4905933
+1033,52.1423150,4.4906483
+1034,52.1423300,4.4907017
+1035,52.1423450,4.4907550
+1036,52.1423617,4.4908100
+1037,52.1423783,4.4908633
+1038,52.1423950,4.4909133
+1039,52.1424117,4.4909633
+1040,52.1424267,4.4910100
+1041,52.1424417,4.4910583
+1042,52.1425200,4.4913167
+1043,52.1425350,4.4913683
+1044,52.1425500,4.4914200
+1045,52.1425667,4.4914717
+1046,52.1425817,4.4915200
+1047,52.1426250,4.4916667
+1048,52.1426383,4.4917150
+1049,52.1426533,4.4917617
+1050,52.1426700,4.4918083
+1051,52.1426850,4.4918567
+1052,52.1427017,4.4919050
+1053,52.1427167,4.4919533
+1054,52.1429333,4.4927250
+1055,52.1429433,4.4927717
+1056,52.1429567,4.4928200
+1057,52.1430283,4.4930750
+1058,52.1430433,4.4931233
+1059,52.1430767,4.4932133
+1060,52.1430900,4.4932567
+1061,52.1431050,4.4933033
+1062,52.1431667,4.4934900
+1063,52.1431800,4.4935300
+1064,52.1431900,4.4935767
+1065,52.1432033,4.4936250
+1066,52.1432167,4.4936700
+1067,52.1432317,4.4937167
+1068,52.1432467,4.4937633
+1069,52.1432583,4.4938083
+1070,52.1432733,4.4938583
+1071,52.1432883,4.4939100
+1072,52.1433050,4.4939633
+1073,52.1433217,4.4940167
+1074,52.1433367,4.4940700
+1075,52.1433500,4.4941200
+1076,52.1433650,4.4941767
+1077,52.1433783,4.4942233
+1078,52.1433950,4.4942717
+1079,52.1434100,4.4943233
+1080,52.1434433,4.4944300
+1081,52.1434767,4.4945317
+1082,52.1434917,4.4945817
+1083,52.1435217,4.4946817
+1084,52.1435383,4.4947333
+1085,52.1435550,4.4947833
+1086,52.1435717,4.4948317
+1087,52.1436050,4.4949283
+1088,52.1436433,4.4950200
+1089,52.1436600,4.4950667
+1090,52.1436800,4.4951150
+1091,52.1436983,4.4951617
+1092,52.1437150,4.4952100
+1093,52.1437333,4.4952567
+1094,52.1437517,4.4953033
+1095,52.1437683,4.4953517
+1096,52.1437850,4.4954000
+1097,52.1438017,4.4954483
+1098,52.1438183,4.4954983
+1099,52.1438333,4.4955467
+1100,52.1438650,4.4956400
+1101,52.1439233,4.4958333
+1102,52.1439383,4.4958800
+1103,52.1439517,4.4959250
+1104,52.1439650,4.4959700
+1105,52.1439783,4.4960133
+1106,52.1440100,4.4961000
+1107,52.1441333,4.4964133
+1108,52.1441500,4.4964617
+1109,52.1441717,4.4965700
+1110,52.1441917,4.4966767
+1111,52.1442017,4.4967283
+1112,52.1446083,4.4979700
+1113,52.1446233,4.4980167
+1114,52.1447317,4.4983600
+1115,52.1447283,4.4983650
+1116,52.1447283,4.4983717
+1117,52.1447300,4.4983717
+1118,52.1447367,4.4983850
+1119,52.1447383,4.4983767
+1120,52.1472900,4.5059917
+1121,52.1473067,4.5060317
+1122,52.1473250,4.5060683
+1123,52.1473400,4.5061067
+1124,52.1473567,4.5061450
+1125,52.1473733,4.5061817
+1126,52.1473900,4.5062200
+1127,52.1476017,4.5066933
+1128,52.1476200,4.5067317
+1129,52.1476400,4.5067683
+1130,52.1481900,4.5079183
+1131,52.1482100,4.5079567
+1132,52.1485917,4.5086183
+1133,52.1486083,4.5086450
+1134,52.1487450,4.5088767
+1135,52.1487617,4.5089050
+1136,52.1487783,4.5089317
+1137,52.1488300,4.5090167
+1138,52.1488483,4.5090483
+1139,52.1488867,4.5091100
+1140,52.1489050,4.5091417
+1141,52.1489250,4.5091733
+1142,52.1489633,4.5092317
+1143,52.1489817,4.5092617
+1144,52.1490183,4.5093200
+1145,52.1490400,4.5093483
+1146,52.1490600,4.5093783
+1147,52.1491433,4.5094967
+1148,52.1491650,4.5095267
+1149,52.1491867,4.5095533
+1150,52.1492083,4.5095800
+1151,52.1492317,4.5096033
+1152,52.1492567,4.5096250
+1153,52.1492783,4.5096483
+1154,52.1493017,4.5096700
+1155,52.1493267,4.5096917
+1156,52.1493517,4.5097133
+1157,52.1493767,4.5097383
+1158,52.1494033,4.5097633
+1159,52.1494283,4.5097900
+1160,52.1494533,4.5098200
+1161,52.1494817,4.5098467
+1162,52.1495067,4.5098733
+1163,52.1495300,4.5099050
+1164,52.1495783,4.5099617
+1165,52.1496017,4.5099950
+1166,52.1496233,4.5100250
+1167,52.1496483,4.5100550
+1168,52.1496717,4.5100850
+1169,52.1496967,4.5101117
+1170,52.1497217,4.5101417
+1171,52.1497933,4.5102267
+1172,52.1498167,4.5102550
+1173,52.1498650,4.5103100
+1174,52.1498900,4.5103350
+1175,52.1499150,4.5103617
+1176,52.1499400,4.5103933
+1177,52.1499650,4.5104267
+1178,52.1499900,4.5104633
+1179,52.1500150,4.5105000
+1180,52.1500367,4.5105383
+1181,52.1500550,4.5105800
+1182,52.1500717,4.5106233
+1183,52.1500900,4.5106667
+1184,52.1501100,4.5107067
+1185,52.1501333,4.5107417
+1186,52.1501583,4.5107733
+1187,52.1501850,4.5108033
+1188,52.1502117,4.5108333
+1189,52.1502350,4.5108650
+1190,52.1503117,4.5109517
+1191,52.1503383,4.5109800
+1192,52.1503667,4.5110100
+1193,52.1503967,4.5110400
+1194,52.1504250,4.5110683
+1195,52.1504517,4.5110967
+1196,52.1504800,4.5111250
+1197,52.1505083,4.5111533
+1198,52.1505350,4.5111817
+1199,52.1505633,4.5112083
+1200,52.1505900,4.5112333
+1201,52.1506150,4.5112567
+1202,52.1506400,4.5112800
+1203,52.1506650,4.5113033
+1204,52.1506917,4.5113267
+1205,52.1507150,4.5113500
+1206,52.1507433,4.5113733
+1207,52.1507700,4.5113983
+1208,52.1507983,4.5114233
+1209,52.1508250,4.5114483
+1210,52.1508517,4.5114717
+1211,52.1508783,4.5114950
+1212,52.1509050,4.5115150
+1213,52.1509300,4.5115350
+1214,52.1509567,4.5115533
+1215,52.1509817,4.5115700
+1216,52.1510083,4.5115883
+1217,52.1510367,4.5116017
+1218,52.1510650,4.5116150
+1219,52.1510933,4.5116250
+1220,52.1511233,4.5116350
+1221,52.1511517,4.5116433
+1222,52.1511800,4.5116567
+1223,52.1512083,4.5116700
+1224,52.1512350,4.5116850
+1225,52.1512633,4.5117033
+1226,52.1512900,4.5117250
+1227,52.1513183,4.5117450
+1228,52.1513450,4.5117700
+1229,52.1513717,4.5117933
+1230,52.1513983,4.5118200
+1231,52.1514250,4.5118467
+1232,52.1514517,4.5118717
+1233,52.1514783,4.5119000
+1234,52.1515033,4.5119283
+1235,52.1515283,4.5119600
+1236,52.1515517,4.5119917
+1237,52.1515750,4.5120233
+1238,52.1515983,4.5120517
+1239,52.1516250,4.5120767
+1240,52.1516517,4.5120983
+1241,52.1516817,4.5121183
+1242,52.1517117,4.5121383
+1243,52.1517417,4.5121583
+1244,52.1517700,4.5121767
+1245,52.1517967,4.5121967
+1246,52.1518250,4.5122183
+1247,52.1518533,4.5122383
+1248,52.1518800,4.5122600
+1249,52.1519067,4.5122783
+1250,52.1519350,4.5122983
+1251,52.1519650,4.5123183
+1252,52.1519950,4.5123333
+1253,52.1520233,4.5123500
+1254,52.1520517,4.5123667
+1255,52.1520817,4.5123817
+1256,52.1521100,4.5123983
+1257,52.1521367,4.5124133
+1258,52.1521650,4.5124283
+1259,52.1521917,4.5124467
+1260,52.1522167,4.5124650
+1261,52.1522417,4.5124817
+1262,52.1522650,4.5124950
+1263,52.1523150,4.5125233
+1264,52.1523400,4.5125300
+1265,52.1523650,4.5125417
+1266,52.1523917,4.5125583
+1267,52.1524183,4.5125733
+1268,52.1524450,4.5125883
+1269,52.1524733,4.5126000
+1270,52.1524983,4.5126133
+1271,52.1525233,4.5126267
+1272,52.1525450,4.5126417
+1273,52.1525717,4.5126550
+1274,52.1525967,4.5126683
+1275,52.1526217,4.5126783
+1276,52.1526483,4.5126917
+1277,52.1526733,4.5127067
+1278,52.1527017,4.5127200
+1279,52.1527300,4.5127317
+1280,52.1527567,4.5127417
+1281,52.1527867,4.5127533
+1282,52.1528167,4.5127633
+1283,52.1528450,4.5127717
+1284,52.1528750,4.5127817
+1285,52.1529050,4.5127950
+1286,52.1529333,4.5128067
+1287,52.1529633,4.5128183
+1288,52.1529933,4.5128267
+1289,52.1530217,4.5128350
+1290,52.1530517,4.5128450
+1291,52.1530800,4.5128550
+1292,52.1531367,4.5128717
+1293,52.1531650,4.5128767
+1294,52.1531950,4.5128783
+1295,52.1532250,4.5128800
+1296,52.1532533,4.5128767
+1297,52.1532817,4.5128683
+1298,52.1533117,4.5128667
+1299,52.1533400,4.5128650
+1300,52.1533700,4.5128617
+1301,52.1534017,4.5128600
+1302,52.1534350,4.5128667
+1303,52.1534683,4.5128750
+1304,52.1534983,4.5128783
+1305,52.1535300,4.5128817
+1306,52.1535917,4.5128917
+1307,52.1536217,4.5128983
+1308,52.1536517,4.5129050
+1309,52.1536817,4.5129067
+1310,52.1537117,4.5129150
+1311,52.1537417,4.5129233
+1312,52.1537700,4.5129317
+1313,52.1537967,4.5129383
+1314,52.1538233,4.5129467
+1315,52.1538483,4.5129517
+1316,52.1538750,4.5129583
+1317,52.1539000,4.5129617
+1318,52.1539267,4.5129667
+1319,52.1539533,4.5129750
+1320,52.1540000,4.5129867
+1321,52.1540250,4.5129900
+1322,52.1540500,4.5129933
+1323,52.1540733,4.5129967
+1324,52.1540933,4.5129983
+1325,52.1541150,4.5130000
+1326,52.1541333,4.5130050
+1327,52.1541633,4.5130117
+1328,52.1541833,4.5130300
+1329,52.1541850,4.5130167
+1330,52.1537900,4.5129333
+1331,52.1537900,4.5129233
+1332,52.1537917,4.5129217
+1333,52.1538217,4.5129317
+1334,52.1538650,4.5129400
+1335,52.1538867,4.5129467
+1336,52.1539100,4.5129533
+1337,52.1539367,4.5129633
+1338,52.1539600,4.5129717
+1339,52.1539867,4.5129767
+1340,52.1540117,4.5129833
+1341,52.1540417,4.5129900
+1342,52.1540683,4.5129967
+1343,52.1540917,4.5130000
+1344,52.1542133,4.5130233
+1345,52.1542400,4.5130250
+1346,52.1542650,4.5130367
+1347,52.1543183,4.5130567
+1348,52.1543433,4.5130650
+1349,52.1543667,4.5130700
+1350,52.1543900,4.5130750
+1351,52.1544150,4.5130817
+1352,52.1544383,4.5130867
+1353,52.1544617,4.5130917
+1354,52.1544850,4.5130933
+1355,52.1545083,4.5130883
+1356,52.1545283,4.5130817
+1357,52.1545667,4.5130617
+1358,52.1545850,4.5130517
+1359,52.1546050,4.5130400
+1360,52.1546433,4.5130150
+1361,52.1546633,4.5130083
+1362,52.1546800,4.5130000
+1363,52.1546950,4.5129983
+1364,52.1547117,4.5130067
+1365,52.1547283,4.5130083
+1366,52.1547433,4.5130083
+1367,52.1547583,4.5130150
+1368,52.1547600,4.5130150
+1369,52.1547617,4.5130133
+1370,52.1547633,4.5130133
+1371,52.1547633,4.5130267
+1372,52.1547633,4.5130300
+1373,52.1547617,4.5130350
Index: /src/website_ontwerp/script/gmap.js
===================================================================
--- /src/website_ontwerp/script/gmap.js	(revision 8848)
+++ /src/website_ontwerp/script/gmap.js	(revision 8853)
@@ -14,5 +14,5 @@
 	getTileUrl: function(coord, zoom)
 	{ 
-	return 'pgaitch/' + zoom + '/' + coord.x + ',' + coord.y + '.png'; 
+	return 'classic/' + zoom + '/' + coord.x + ',' + coord.y + '.png'; 
 	}, 
 	tileSize: new google.maps.Size(256, 256), 
