Commits

Thejesh GN committed f868c67

moved the usage examples into a folder

  • Participants
  • Parent commits e1bacae

Comments (0)

Files changed (18)

File GIS/usage/heatmap/BeautifulSoup.py

+"""Beautiful Soup
+Elixir and Tonic
+"The Screen-Scraper's Friend"
+v3.0.0
+http://www.crummy.com/software/BeautifulSoup/
+
+Beautiful Soup parses a (possibly invalid) XML or HTML document into a
+tree representation. It provides methods and Pythonic idioms that make
+it easy to navigate, search, and modify the tree.
+
+A well-formed XML/HTML document yields a well-formed data
+structure. An ill-formed XML/HTML document yields a correspondingly
+ill-formed data structure. If your document is only locally
+well-formed, you can use this library to find and process the
+well-formed part of it.
+
+Beautiful Soup works with Python 2.2 and up. It has no external
+dependencies, but you'll have more success at converting data to UTF-8
+if you also install these three packages:
+
+* chardet, for auto-detecting character encodings
+  http://chardet.feedparser.org/
+* cjkcodecs and iconv_codec, which add more encodings to the ones supported
+  by stock Python.
+  http://cjkpython.i18n.org/
+
+Beautiful Soup defines classes for two main parsing strategies:
+    
+ * BeautifulStoneSoup, for parsing XML, SGML, or your domain-specific
+   language that kind of looks like XML.
+
+ * BeautifulSoup, for parsing run-of-the-mill HTML code, be it valid
+   or invalid. This class has web browser-like heuristics for
+   obtaining a sensible parse tree in the face of common HTML errors.
+
+Beautiful Soup also defines a class (UnicodeDammit) for autodetecting
+the encoding of an HTML or XML document, and converting it to
+Unicode. Much of this code is taken from Mark Pilgrim's Universal Feed Parser.
+
+For more than you ever wanted to know about Beautiful Soup, see the
+documentation:
+http://www.crummy.com/software/BeautifulSoup/documentation.html
+
+"""
+from __future__ import generators
+
+__author__ = "Leonard Richardson (leonardr@segfault.org)"
+__version__ = "3.0.0"
+__date__ = "$Date: 2004/10/18 00:14:20 $"
+__copyright__ = "Copyright (c) 2004-2005 Leonard Richardson"
+__license__ = "PSF"
+
+from sgmllib import SGMLParser, SGMLParseError
+import codecs
+import types
+import re
+import sgmllib
+from htmlentitydefs import name2codepoint
+
+#This code makes Beautiful Soup able to parse XML with namespaces
+sgmllib.tagfind = re.compile('[a-zA-Z][-_.:a-zA-Z0-9]*')
+
+DEFAULT_OUTPUT_ENCODING = "utf-8"
+
+# First, the classes that represent markup elements.
+
+class PageElement:
+    """Contains the navigational information for some part of the page
+    (either a tag or a piece of text)"""
+
+    def setup(self, parent=None, previous=None):
+        """Sets up the initial relations between this element and
+        other elements."""        
+        self.parent = parent
+        self.previous = previous
+        self.next = None
+        self.previousSibling = None
+        self.nextSibling = None
+        if self.parent and self.parent.contents:
+            self.previousSibling = self.parent.contents[-1]
+            self.previousSibling.nextSibling = self
+
+    def replaceWith(self, replaceWith):        
+        oldParent = self.parent
+        myIndex = self.parent.contents.index(self)
+        if hasattr(replaceWith, 'parent') and replaceWith.parent == self.parent:
+            # We're replacing this element with one of its siblings.
+            index = self.parent.contents.index(replaceWith)
+            if index and index < myIndex:
+                # Furthermore, it comes before this element. That
+                # means that when we extract it, the index of this
+                # element will change.
+                myIndex = myIndex - 1
+        self.extract()        
+        oldParent.insert(myIndex, replaceWith)
+        
+    def extract(self):
+        """Destructively rips this element out of the tree."""        
+        if self.parent:
+            try:
+                self.parent.contents.remove(self)
+            except ValueError:
+                pass
+
+        #Find the two elements that would be next to each other if
+        #this element (and any children) hadn't been parsed. Connect
+        #the two.        
+        lastChild = self._lastRecursiveChild()
+        nextElement = lastChild.next
+
+        if self.previous:
+            self.previous.next = nextElement
+        if nextElement:
+            nextElement.previous = self.previous
+        self.previous = None
+        lastChild.next = None
+
+        self.parent = None        
+        if self.previousSibling:
+            self.previousSibling.nextSibling = self.nextSibling
+        if self.nextSibling:
+            self.nextSibling.previousSibling = self.previousSibling
+        self.previousSibling = self.nextSibling = None       
+
+    def _lastRecursiveChild(self):
+        "Finds the last element beneath this object to be parsed."
+        lastChild = self
+        while hasattr(lastChild, 'contents') and lastChild.contents:
+            lastChild = lastChild.contents[-1]
+        return lastChild
+
+    def insert(self, position, newChild):
+        if (isinstance(newChild, basestring)
+            or isinstance(newChild, unicode)) \
+            and not isinstance(newChild, NavigableString):
+            newChild = NavigableString(newChild)        
+
+        position =  min(position, len(self.contents))
+        if hasattr(newChild, 'parent') and newChild.parent != None:
+            # We're 'inserting' an element that's already one
+            # of this object's children. 
+            if newChild.parent == self:
+                index = self.find(newChild)
+                if index and index < position:
+                    # Furthermore we're moving it further down the
+                    # list of this object's children. That means that
+                    # when we extract this element, our target index
+                    # will jump down one.
+                    position = position - 1
+            newChild.extract()
+            
+        newChild.parent = self
+        previousChild = None
+        if position == 0:
+            newChild.previousSibling = None
+            newChild.previous = self
+        else:
+            previousChild = self.contents[position-1]
+            newChild.previousSibling = previousChild
+            newChild.previousSibling.nextSibling = newChild
+            newChild.previous = previousChild._lastRecursiveChild()
+        if newChild.previous:
+            newChild.previous.next = newChild        
+
+        newChildsLastElement = newChild._lastRecursiveChild()
+
+        if position >= len(self.contents):
+            newChild.nextSibling = None
+            
+            parent = self
+            parentsNextSibling = None
+            while not parentsNextSibling:
+                parentsNextSibling = parent.nextSibling
+                parent = parent.parent
+                if not parent: # This is the last element in the document.
+                    break
+            if parentsNextSibling:
+                newChildsLastElement.next = parentsNextSibling
+            else:
+                newChildsLastElement.next = None
+        else:
+            nextChild = self.contents[position]            
+            newChild.nextSibling = nextChild            
+            if newChild.nextSibling:
+                newChild.nextSibling.previousSibling = newChild
+            newChildsLastElement.next = nextChild
+
+        if newChildsLastElement.next:
+            newChildsLastElement.next.previous = newChildsLastElement
+        self.contents.insert(position, newChild)
+
+    def findNext(self, name=None, attrs={}, text=None, **kwargs):
+        """Returns the first item that matches the given criteria and
+        appears after this Tag in the document."""
+        return self._findOne(self.findAllNext, name, attrs, text, **kwargs)
+
+    def findAllNext(self, name=None, attrs={}, text=None, limit=None,
+                    **kwargs):
+        """Returns all items that match the given criteria and appear
+        before after Tag in the document."""
+        return self._findAll(name, attrs, text, limit, self.nextGenerator)
+
+    def findNextSibling(self, name=None, attrs={}, text=None, **kwargs):
+        """Returns the closest sibling to this Tag that matches the
+        given criteria and appears after this Tag in the document."""
+        return self._findOne(self.findNextSiblings, name, attrs, text,
+                             **kwargs)
+
+    def findNextSiblings(self, name=None, attrs={}, text=None, limit=None,
+                         **kwargs):
+        """Returns the siblings of this Tag that match the given
+        criteria and appear after this Tag in the document."""
+        return self._findAll(name, attrs, text, limit,
+                             self.nextSiblingGenerator, **kwargs)
+
+    def findPrevious(self, name=None, attrs={}, text=None, **kwargs):
+        """Returns the first item that matches the given criteria and
+        appears before this Tag in the document."""
+        return self._findOne(self.findAllPrevious, name, attrs, text, **kwargs)
+
+    def findAllPrevious(self, name=None, attrs={}, text=None, limit=None,
+                        **kwargs):
+        """Returns all items that match the given criteria and appear
+        before this Tag in the document."""
+        return self._findAll(name, attrs, text, limit, self.previousGenerator,
+                           **kwargs)
+
+    def findPreviousSibling(self, name=None, attrs={}, text=None, **kwargs):
+        """Returns the closest sibling to this Tag that matches the
+        given criteria and appears before this Tag in the document."""
+        return self._findOne(self.findPreviousSiblings, name, attrs, text,
+                             **kwargs)
+
+    def findPreviousSiblings(self, name=None, attrs={}, text=None,
+                             limit=None, **kwargs):
+        """Returns the siblings of this Tag that match the given
+        criteria and appear before this Tag in the document."""
+        return self._findAll(name, attrs, text, limit,
+                             self.previousSiblingGenerator, **kwargs)
+
+    def findParent(self, name=None, attrs={}, **kwargs):
+        """Returns the closest parent of this Tag that matches the given
+        criteria."""
+        # NOTE: We can't use _findOne because findParents takes a different
+        # set of arguments.
+        r = None
+        l = self.findParents(name, attrs, 1)
+        if l:
+            r = l[0]
+        return r
+
+    def findParents(self, name=None, attrs={}, limit=None, **kwargs):
+        """Returns the parents of this Tag that match the given
+        criteria."""
+
+        return self._findAll(name, attrs, None, limit, self.parentGenerator,
+                             **kwargs)
+
+    #These methods do the real heavy lifting.
+
+    def _findOne(self, method, name, attrs, text, **kwargs):
+        r = None
+        l = method(name, attrs, text, 1, **kwargs)
+        if l:
+            r = l[0]
+        return r
+    
+    def _findAll(self, name, attrs, text, limit, generator, **kwargs):
+        "Iterates over a generator looking for things that match."
+
+        if isinstance(name, SoupStrainer):
+            strainer = name
+        else:
+            # Build a SoupStrainer
+            strainer = SoupStrainer(name, attrs, text, **kwargs)
+        results = ResultSet(strainer)
+        g = generator()
+        while True:
+            try:
+                i = g.next()
+            except StopIteration:
+                break
+            if i:
+                found = strainer.search(i)
+                if found:
+                    results.append(found)
+                    if limit and len(results) >= limit:
+                        break
+        return results
+
+    #These Generators can be used to navigate starting from both
+    #NavigableStrings and Tags.                
+    def nextGenerator(self):
+        i = self
+        while i:
+            i = i.next
+            yield i
+
+    def nextSiblingGenerator(self):
+        i = self
+        while i:
+            i = i.nextSibling
+            yield i
+
+    def previousGenerator(self):
+        i = self
+        while i:
+            i = i.previous
+            yield i
+
+    def previousSiblingGenerator(self):
+        i = self
+        while i:
+            i = i.previousSibling
+            yield i
+
+    def parentGenerator(self):
+        i = self
+        while i:
+            i = i.parent
+            yield i
+
+    # Utility methods
+    def substituteEncoding(self, str, encoding=None):
+        encoding = encoding or "utf-8"
+        return str.replace("%SOUP-ENCODING%", encoding)    
+
+    def toEncoding(self, s, encoding=None):
+        """Encodes an object to a string in some encoding, or to Unicode.
+        ."""
+        if isinstance(s, unicode):
+            if encoding:
+                s = s.encode(encoding)
+        elif isinstance(s, str):
+            if encoding:
+                s = s.encode(encoding)
+            else:
+                s = unicode(s)
+        else:
+            if encoding:
+                s  = self.toEncoding(str(s), encoding)
+            else:
+                s = unicode(s)
+        return s
+
+class NavigableString(unicode, PageElement):
+
+    def __getattr__(self, attr):
+        """text.string gives you text. This is for backwards
+        compatibility for Navigable*String, but for CData* it lets you
+        get the string without the CData wrapper."""
+        if attr == 'string':
+            return self
+        else:
+            raise AttributeError, "'%s' object has no attribute '%s'" % (self.__class__.__name__, attr)
+
+    def __unicode__(self):
+        return __str__(self, None)
+
+    def __str__(self, encoding=DEFAULT_OUTPUT_ENCODING):
+        if encoding:
+            return self.encode(encoding)
+        else:
+            return self
+        
+class CData(NavigableString):
+
+    def __str__(self, encoding=DEFAULT_OUTPUT_ENCODING):
+        return "<![CDATA[%s]]>" % NavigableString.__str__(self, encoding)
+
+class ProcessingInstruction(NavigableString):
+    def __str__(self, encoding=DEFAULT_OUTPUT_ENCODING):
+        output = self
+        if "%SOUP-ENCODING%" in output:
+            output = self.substituteEncoding(output, encoding)
+        return "<?%s?>" % self.toEncoding(output, encoding)
+
+class Comment(NavigableString):
+    def __str__(self, encoding=DEFAULT_OUTPUT_ENCODING):
+        return "<!--%s-->" % NavigableString.__str__(self, encoding)    
+
+class Declaration(NavigableString):
+    def __str__(self, encoding=DEFAULT_OUTPUT_ENCODING):
+        return "<!%s>" % NavigableString.__str__(self, encoding)        
+
+class Tag(PageElement):
+
+    """Represents a found HTML tag with its attributes and contents."""
+
+    def __init__(self, parser, name, attrs=None, parent=None,
+                 previous=None):
+        "Basic constructor."
+
+        # We don't actually store the parser object: that lets extracted
+        # chunks be garbage-collected
+        self.parserClass = parser.__class__
+        self.isSelfClosing = parser.isSelfClosingTag(name)
+        self.name = name
+        if attrs == None:
+            attrs = []
+        self.attrs = attrs
+        self.contents = []
+        self.setup(parent, previous)
+        self.hidden = False
+        self.containsSubstitutions = False
+
+    def get(self, key, default=None):
+        """Returns the value of the 'key' attribute for the tag, or
+        the value given for 'default' if it doesn't have that
+        attribute."""
+        return self._getAttrMap().get(key, default)    
+
+    def has_key(self, key):
+        return self._getAttrMap().has_key(key)
+
+    def __getitem__(self, key):
+        """tag[key] returns the value of the 'key' attribute for the tag,
+        and throws an exception if it's not there."""
+        return self._getAttrMap()[key]
+
+    def __iter__(self):
+        "Iterating over a tag iterates over its contents."
+        return iter(self.contents)
+
+    def __len__(self):
+        "The length of a tag is the length of its list of contents."
+        return len(self.contents)
+
+    def __contains__(self, x):
+        return x in self.contents
+
+    def __nonzero__(self):
+        "A tag is non-None even if it has no contents."
+        return True
+
+    def __setitem__(self, key, value):        
+        """Setting tag[key] sets the value of the 'key' attribute for the
+        tag."""
+        self._getAttrMap()
+        self.attrMap[key] = value
+        found = False
+        for i in range(0, len(self.attrs)):
+            if self.attrs[i][0] == key:
+                self.attrs[i] = (key, value)
+                found = True
+        if not found:
+            self.attrs.append((key, value))
+        self._getAttrMap()[key] = value
+
+    def __delitem__(self, key):
+        "Deleting tag[key] deletes all 'key' attributes for the tag."
+        for item in self.attrs:
+            if item[0] == key:
+                self.attrs.remove(item)
+                #We don't break because bad HTML can define the same
+                #attribute multiple times.
+            self._getAttrMap()
+            if self.attrMap.has_key(key):
+                del self.attrMap[key]
+
+    def __call__(self, *args, **kwargs):
+        """Calling a tag like a function is the same as calling its
+        findAll() method. Eg. tag('a') returns a list of all the A tags
+        found within this tag."""
+        return apply(self.findAll, args, kwargs)
+
+    def __getattr__(self, tag):
+        #print "Getattr %s.%s" % (self.__class__, tag)
+        if len(tag) > 3 and tag.rfind('Tag') == len(tag)-3:
+            return self.find(tag[:-3])
+        elif tag.find('__') != 0:
+            return self.find(tag)
+
+    def __eq__(self, other):
+        """Returns true iff this tag has the same name, the same attributes,
+        and the same contents (recursively) as the given tag.
+
+        NOTE: right now this will return false if two tags have the
+        same attributes in a different order. Should this be fixed?"""
+        if not hasattr(other, 'name') or not hasattr(other, 'attrs') or not hasattr(other, 'contents') or self.name != other.name or self.attrs != other.attrs or len(self) != len(other):
+            return False
+        for i in range(0, len(self.contents)):
+            if self.contents[i] != other.contents[i]:
+                return False
+        return True
+
+    def __ne__(self, other):
+        """Returns true iff this tag is not identical to the other tag,
+        as defined in __eq__."""
+        return not self == other
+
+    def __repr__(self, encoding=DEFAULT_OUTPUT_ENCODING):
+        """Renders this tag as a string."""
+        return self.__str__(encoding)
+
+    def __unicode__(self):
+        return self.__str__(None)
+
+    def __str__(self, encoding=DEFAULT_OUTPUT_ENCODING,
+                prettyPrint=False, indentLevel=0):
+        """Returns a string or Unicode representation of this tag and
+        its contents. To get Unicode, pass None for encoding.
+
+        NOTE: since Python's HTML parser consumes whitespace, this
+        method is not certain to reproduce the whitespace present in
+        the original string."""
+
+        encodedName = self.toEncoding(self.name, encoding)
+        
+        attrs = []
+        if self.attrs:
+            for key, val in self.attrs:
+                fmt = '%s="%s"'
+                if isString(val):
+                    if self.containsSubstitutions and '%SOUP-ENCODING%' in val:
+                        val = self.substituteEncoding(val, encoding)
+                    if '"' in val:
+                        fmt = "%s='%s'"
+                        # This can't happen naturally, but it can happen
+                        # if you modify an attribute value and print it out.
+                        if "'" in val:
+                            val = val.replace("'", "&squot;")
+                attrs.append(fmt % (self.toEncoding(key, encoding),
+                                    self.toEncoding(val, encoding)))
+        close = ''
+        closeTag = ''
+        if self.isSelfClosing:
+            close = ' /'
+        else:
+            closeTag = '</%s>' % encodedName
+
+        indentTag, indentContents = 0, 0
+        if prettyPrint:
+            indentTag = indentLevel
+            space = (' ' * (indentTag-1))
+            indentContents = indentTag + 1
+        contents = self.renderContents(encoding, prettyPrint, indentContents)
+        if self.hidden:
+            s = contents
+        else:
+            s = []
+            attributeString = ''
+            if attrs:
+                attributeString = ' ' + ' '.join(attrs)            
+            if prettyPrint:
+                s.append(space)
+            s.append('<%s%s%s>' % (encodedName, attributeString, close))
+            if prettyPrint:
+                s.append("\n")
+            s.append(contents)
+            if prettyPrint and contents and contents[-1] != "\n":
+                s.append("\n")
+            if prettyPrint and closeTag:
+                s.append(space)
+            s.append(closeTag)
+            if prettyPrint and closeTag and self.nextSibling:
+                s.append("\n")
+            s = ''.join(s)
+        return s
+
+    def prettify(self, encoding=DEFAULT_OUTPUT_ENCODING):
+        return self.__str__(encoding, True)
+
+    def renderContents(self, encoding=DEFAULT_OUTPUT_ENCODING,
+                       prettyPrint=False, indentLevel=0):
+        """Renders the contents of this tag as a string in the given
+        encoding. If encoding is None, returns a Unicode string.."""
+        s=[]
+        for c in self:
+            text = None
+            if isinstance(c, NavigableString):
+                text = c.__str__(encoding)
+            elif isinstance(c, Tag):
+                s.append(c.__str__(encoding, prettyPrint, indentLevel))
+            if text and prettyPrint:
+                text = text.strip()              
+            if text:
+                if prettyPrint:
+                    s.append(" " * (indentLevel-1))
+                s.append(text)
+                if prettyPrint:
+                    s.append("\n")
+        return ''.join(s)    
+
+    #Soup methods
+
+    def find(self, name=None, attrs={}, recursive=True, text=None,
+              **kwargs):
+        """Return only the first child of this
+        Tag matching the given criteria."""
+        r = None
+        l = self.findAll(name, attrs, recursive, text, 1)
+        if l:
+            r = l[0]
+        return r
+    findChild = find
+
+    def findAll(self, name=None, attrs={}, recursive=True, text=None,
+                limit=None, **kwargs):
+        """Extracts a list of Tag objects that match the given
+        criteria.  You can specify the name of the Tag and any
+        attributes you want the Tag to have.
+
+        The value of a key-value pair in the 'attrs' map can be a
+        string, a list of strings, a regular expression object, or a
+        callable that takes a string and returns whether or not the
+        string matches for some custom definition of 'matches'. The
+        same is true of the tag name."""
+        generator = self.recursiveChildGenerator
+        if not recursive:
+            generator = self.childGenerator
+        return self._findAll(name, attrs, text, limit, generator, **kwargs)
+    findAllChildren = findAll
+    
+    #Utility methods
+
+    def append(self, tag):
+        """Appends the given tag to the contents of this tag."""
+        self.contents.append(tag)
+
+    #Private methods
+
+    def _getAttrMap(self):
+        """Initializes a map representation of this tag's attributes,
+        if not already initialized."""
+        if not getattr(self, 'attrMap'):
+            self.attrMap = {}
+            for (key, value) in self.attrs:
+                self.attrMap[key] = value 
+        return self.attrMap
+
+    #Generator methods
+    def childGenerator(self):
+        for i in range(0, len(self.contents)):
+            yield self.contents[i]
+        raise StopIteration
+    
+    def recursiveChildGenerator(self):
+        stack = [(self, 0)]
+        while stack:
+            tag, start = stack.pop()
+            if isinstance(tag, Tag):            
+                for i in range(start, len(tag.contents)):
+                    a = tag.contents[i]
+                    yield a
+                    if isinstance(a, Tag) and tag.contents:
+                        if i < len(tag.contents) - 1:
+                            stack.append((tag, i+1))
+                        stack.append((a, 0))
+                        break
+        raise StopIteration
+
+# Next, a couple classes to represent queries and their results.
+class SoupStrainer:
+    """Encapsulates a number of ways of matching a markup element (tag or
+    text)."""
+
+    def __init__(self, name=None, attrs={}, text=None, **kwargs):
+        self.name=name
+        self.attrs=attrs.copy()
+        self.attrs.update(kwargs)
+        self.text = text
+
+    def __str__(self):
+        if self.text:
+            return self.text
+        else:
+            return "%s|%s" % (self.name, self.attrs)
+    
+    def searchTag(self, markupName=None, markupAttrs={}):
+        found = None
+        markup = None
+        if isinstance(markupName, Tag):
+            markup = markupName
+            markupAttrs = markup
+        callFunctionWithTagData = callable(self.name) \
+                                and not isinstance(markupName, Tag)
+
+        if (not self.name) \
+               or callFunctionWithTagData \
+               or (markup and self._matches(markup, self.name)) \
+               or (not markup and self._matches(markupName, self.name)):
+            if callFunctionWithTagData:
+                match = self.name(markupName, markupAttrs)
+            else:
+                match = True            
+                markupAttrMap = None
+                for attr, matchAgainst in self.attrs.items():
+                    if not markupAttrMap:
+                         if hasattr(markupAttrs, 'get'):
+                            markupAttrMap = markupAttrs
+                         else:
+                            markupAttrMap = {}
+                            for k,v in markupAttrs:
+                                markupAttrMap[k] = v
+                    attrValue = markupAttrMap.get(attr)
+                    if not self._matches(attrValue, matchAgainst):
+                        match = False
+                        break
+            if match:
+                if markup:
+                    found = markup
+                else:
+                    found = markupName
+        return found
+
+    def search(self, markup):
+        #print 'looking for %s in %s' % (self, markup)
+        found = None
+        # If given a list of items, scan it for a text element that
+        # matches.        
+        if isList(markup) and not isinstance(markup, Tag):
+            for element in markup:
+                if isinstance(element, NavigableString) \
+                       and self.search(element):
+                    found = element
+                    break
+        # If it's a Tag, make sure its name or attributes match.
+        # Don't bother with Tags if we're searching for text.
+        elif isinstance(markup, Tag):
+            if not self.text:
+                found = self.searchTag(markup)
+        # If it's text, make sure the text matches.
+        elif isinstance(markup, NavigableString) or \
+                 isString(markup):
+            if self._matches(markup, self.text):
+                found = markup
+        else:
+            raise Exception, "I don't know how to match against a %s" \
+                  % markup.__class__
+        return found
+        
+    def _matches(self, markup, matchAgainst):    
+        #print "Matching %s against %s" % (markup, matchAgainst)
+        result = False
+        if matchAgainst == True and type(matchAgainst) == types.BooleanType:
+            result = markup != None
+        elif callable(matchAgainst):
+            result = matchAgainst(markup)
+        else:
+            #Custom match methods take the tag as an argument, but all
+            #other ways of matching match the tag name as a string.
+            if isinstance(markup, Tag):
+                markup = markup.name
+            if markup and not isString(markup):
+                markup = unicode(markup)
+            #Now we know that chunk is either a string, or None.
+            if hasattr(matchAgainst, 'match'):
+                # It's a regexp object.
+                result = markup and matchAgainst.search(markup)
+            elif isList(matchAgainst):
+                result = markup in matchAgainst
+            elif hasattr(matchAgainst, 'items'):
+                result = markup.has_key(matchAgainst)
+            elif matchAgainst and isString(markup):
+                if isinstance(markup, unicode):
+                    matchAgainst = unicode(matchAgainst)
+                else:
+                    matchAgainst = str(matchAgainst)
+
+            if not result:
+                result = matchAgainst == markup
+        return result
+
+class ResultSet(list):
+    """A ResultSet is just a list that keeps track of the SoupStrainer
+    that created it."""
+    def __init__(self, source):
+        list.__init__([])
+        self.source = source
+
+# Now, some helper functions.
+
+def isList(l):
+    """Convenience method that works with all 2.x versions of Python
+    to determine whether or not something is listlike."""
+    return hasattr(l, '__iter__') \
+           or (type(l) in (types.ListType, types.TupleType))
+
+def isString(s):
+    """Convenience method that works with all 2.x versions of Python
+    to determine whether or not something is stringlike."""
+    try:
+        return isinstance(s, unicode) or isintance(s, basestring) 
+    except NameError:
+        return isinstance(s, str)
+
+def buildTagMap(default, *args):
+    """Turns a list of maps, lists, or scalars into a single map.
+    Used to build the SELF_CLOSING_TAGS, NESTABLE_TAGS, and
+    NESTING_RESET_TAGS maps out of lists and partial maps."""
+    built = {}
+    for portion in args:
+        if hasattr(portion, 'items'):
+            #It's a map. Merge it.
+            for k,v in portion.items():
+                built[k] = v
+        elif isList(portion):
+            #It's a list. Map each item to the default.
+            for k in portion:
+                built[k] = default
+        else:
+            #It's a scalar. Map it to the default.
+            built[portion] = default
+    return built
+
+# Now, the parser classes.
+
+class BeautifulStoneSoup(Tag, SGMLParser):
+
+    """This class contains the basic parser and search code. It defines
+    a parser that knows nothing about tag behavior except for the
+    following:
+   
+      You can't close a tag without closing all the tags it encloses.
+      That is, "<foo><bar></foo>" actually means
+      "<foo><bar></bar></foo>".
+
+    [Another possible explanation is "<foo><bar /></foo>", but since
+    this class defines no SELF_CLOSING_TAGS, it will never use that
+    explanation.]
+
+    This class is useful for parsing XML or made-up markup languages,
+    or when BeautifulSoup makes an assumption counter to what you were
+    expecting."""
+
+    XML_ENTITY_LIST = {}
+    for i in ["quot", "apos", "amp", "lt", "gt"]:
+        XML_ENTITY_LIST[i] = True 
+
+    SELF_CLOSING_TAGS = {}
+    NESTABLE_TAGS = {}
+    RESET_NESTING_TAGS = {}
+    QUOTE_TAGS = {}
+
+    MARKUP_MASSAGE = [(re.compile('(<[^<>]*)/>'),
+                       lambda x: x.group(1) + ' />'),
+                      (re.compile('<!\s+([^<>]*)>'),
+                       lambda x: '<!' + x.group(1) + '>')
+                      ]
+
+    ROOT_TAG_NAME = u'[document]'
+
+    HTML_ENTITIES = "html"
+    XML_ENTITIES = "xml"
+
+    def __init__(self, markup="", parseOnlyThese=None, fromEncoding=None,
+                 markupMassage=True, smartQuotesTo=XML_ENTITIES,
+                 convertEntities=None, selfClosingTags=None):
+        """The Soup object is initialized as the 'root tag', and the
+        provided markup (which can be a string or a file-like object)
+        is fed into the underlying parser. 
+
+        sgmllib will process most bad HTML, and the BeautifulSoup
+        class has some tricks for dealing with some HTML that kills
+        sgmllib, but Beautiful Soup can nonetheless choke or lose data
+        if your data uses self-closing tags or declarations
+        incorrectly.
+
+        By default, Beautiful Soup uses regexes to sanitize input,
+        avoiding the vast majority of these problems. If the problems
+        don't apply to you, pass in False for markupMassage, and
+        you'll get better performance.
+
+        The default parser massage techniques fix the two most common
+        instances of invalid HTML that choke sgmllib:
+
+         <br/> (No space between name of closing tag and tag close)
+         <! --Comment--> (Extraneous whitespace in declaration)
+
+        You can pass in a custom list of (RE object, replace method)
+        tuples to get Beautiful Soup to scrub your input the way you
+        want."""
+
+        self.parseOnlyThese = parseOnlyThese
+        self.fromEncoding = fromEncoding
+        self.smartQuotesTo = smartQuotesTo
+        self.convertEntities = convertEntities
+        if self.convertEntities:
+            # It doesn't make sense to convert encoded characters to
+            # entities even while you're converting entities to Unicode.
+            # Just convert it all to Unicode.
+            self.smartQuotesTo = None
+        self.instanceSelfClosingTags = buildTagMap(None, selfClosingTags)
+        SGMLParser.__init__(self)
+            
+        if hasattr(markup, 'read'):        # It's a file-type object.
+            markup = markup.read()
+        self.markup = markup
+        self.markupMassage = markupMassage
+        try:
+            self._feed()
+        except StopParsing:
+            pass
+        self.markup = None                 # The markup can now be GCed
+        
+    def _feed(self, inDocumentEncoding=None):
+        # Convert the document to Unicode.
+        markup = self.markup
+        if isinstance(markup, unicode):
+            if not hasattr(self, 'originalEncoding'):
+                self.originalEncoding = None
+        else:
+            dammit = UnicodeDammit\
+                     (markup, [self.fromEncoding, inDocumentEncoding],
+                      smartQuotesTo=self.smartQuotesTo)
+            markup = dammit.unicode
+            self.originalEncoding = dammit.originalEncoding
+        if markup:
+            if self.markupMassage:
+                if not isList(self.markupMassage):
+                    self.markupMassage = self.MARKUP_MASSAGE            
+                for fix, m in self.markupMassage:
+                    markup = fix.sub(m, markup)
+        self.reset()
+
+        SGMLParser.feed(self, markup)
+        # Close out any unfinished strings and close all the open tags.
+        self.endData()
+        while self.currentTag.name != self.ROOT_TAG_NAME:
+            self.popTag()
+
+    def __getattr__(self, methodName):
+        """This method routes method call requests to either the SGMLParser
+        superclass or the Tag superclass, depending on the method name."""
+        #print "__getattr__ called on %s.%s" % (self.__class__, methodName)
+
+        if methodName.find('start_') == 0 or methodName.find('end_') == 0 \
+               or methodName.find('do_') == 0:
+            return SGMLParser.__getattr__(self, methodName)
+        elif methodName.find('__') != 0:
+            return Tag.__getattr__(self, methodName)
+        else:
+            raise AttributeError
+
+    def isSelfClosingTag(self, name):
+        """Returns true iff the given string is the name of a
+        self-closing tag according to this parser."""
+        return self.SELF_CLOSING_TAGS.has_key(name) \
+               or self.instanceSelfClosingTags.has_key(name)
+            
+    def reset(self):
+        Tag.__init__(self, self, self.ROOT_TAG_NAME)
+        self.hidden = 1
+        SGMLParser.reset(self)
+        self.currentData = []
+        self.currentTag = None
+        self.tagStack = []
+        self.quoteStack = []
+        self.pushTag(self)
+    
+    def popTag(self):
+        tag = self.tagStack.pop()
+        # Tags with just one string-owning child get the child as a
+        # 'string' property, so that soup.tag.string is shorthand for
+        # soup.tag.contents[0]
+        if len(self.currentTag.contents) == 1 and \
+           isinstance(self.currentTag.contents[0], NavigableString):
+            self.currentTag.string = self.currentTag.contents[0]
+
+        #print "Pop", tag.name
+        if self.tagStack:
+            self.currentTag = self.tagStack[-1]
+        return self.currentTag
+
+    def pushTag(self, tag):
+        #print "Push", tag.name
+        if self.currentTag:
+            self.currentTag.append(tag)
+        self.tagStack.append(tag)
+        self.currentTag = self.tagStack[-1]
+
+    def endData(self, containerClass=NavigableString):
+        if self.currentData:
+            currentData = ''.join(self.currentData)
+            if not currentData.strip():
+                if '\n' in currentData:
+                    currentData = '\n'
+                else:
+                    currentData = ' '
+            self.currentData = []
+            if self.parseOnlyThese and len(self.tagStack) <= 1 and \
+                   (not self.parseOnlyThese.text or \
+                    not self.parseOnlyThese.search(currentData)):
+                return
+            o = containerClass(currentData)
+            o.setup(self.currentTag, self.previous)
+            if self.previous:
+                self.previous.next = o
+            self.previous = o
+            self.currentTag.contents.append(o)
+
+
+    def _popToTag(self, name, inclusivePop=True):
+        """Pops the tag stack up to and including the most recent
+        instance of the given tag. If inclusivePop is false, pops the tag
+        stack up to but *not* including the most recent instqance of
+        the given tag."""
+        #print "Popping to %s" % name
+        if name == self.ROOT_TAG_NAME:
+            return            
+
+        numPops = 0
+        mostRecentTag = None
+        for i in range(len(self.tagStack)-1, 0, -1):
+            if name == self.tagStack[i].name:
+                numPops = len(self.tagStack)-i
+                break
+        if not inclusivePop:
+            numPops = numPops - 1
+
+        for i in range(0, numPops):
+            mostRecentTag = self.popTag()
+        return mostRecentTag    
+
+    def _smartPop(self, name):
+
+        """We need to pop up to the previous tag of this type, unless
+        one of this tag's nesting reset triggers comes between this
+        tag and the previous tag of this type, OR unless this tag is a
+        generic nesting trigger and another generic nesting trigger
+        comes between this tag and the previous tag of this type.
+
+        Examples:
+         <p>Foo<b>Bar<p> should pop to 'p', not 'b'.
+         <p>Foo<table>Bar<p> should pop to 'table', not 'p'.
+         <p>Foo<table><tr>Bar<p> should pop to 'tr', not 'p'.
+         <p>Foo<b>Bar<p> should pop to 'p', not 'b'.
+
+         <li><ul><li> *<li>* should pop to 'ul', not the first 'li'.
+         <tr><table><tr> *<tr>* should pop to 'table', not the first 'tr'
+         <td><tr><td> *<td>* should pop to 'tr', not the first 'td'
+        """
+
+        nestingResetTriggers = self.NESTABLE_TAGS.get(name)
+        isNestable = nestingResetTriggers != None
+        isResetNesting = self.RESET_NESTING_TAGS.has_key(name)
+        popTo = None
+        inclusive = True
+        for i in range(len(self.tagStack)-1, 0, -1):
+            p = self.tagStack[i]
+            if (not p or p.name == name) and not isNestable:
+                #Non-nestable tags get popped to the top or to their
+                #last occurance.
+                popTo = name
+                break
+            if (nestingResetTriggers != None
+                and p.name in nestingResetTriggers) \
+                or (nestingResetTriggers == None and isResetNesting
+                    and self.RESET_NESTING_TAGS.has_key(p.name)):
+                
+                #If we encounter one of the nesting reset triggers
+                #peculiar to this tag, or we encounter another tag
+                #that causes nesting to reset, pop up to but not
+                #including that tag.
+                popTo = p.name
+                inclusive = False
+                break
+            p = p.parent
+        if popTo:
+            self._popToTag(popTo, inclusive)
+
+    def unknown_starttag(self, name, attrs, selfClosing=0):
+        #print "Start tag %s" % name
+        if self.quoteStack:
+            #This is not a real tag.
+            #print "<%s> is not real!" % name
+            attrs = ''.join(map(lambda(x, y): ' %s="%s"' % (x, y), attrs))
+            self.handle_data('<%s%s>' % (name, attrs))
+            return        
+        self.endData()
+
+        if not self.isSelfClosingTag(name) and not selfClosing:
+            self._smartPop(name)
+
+        if self.parseOnlyThese and len(self.tagStack) <= 1 \
+               and (self.parseOnlyThese.text or not self.parseOnlyThese.searchTag(name, attrs)):
+            return
+
+        tag = Tag(self, name, attrs, self.currentTag, self.previous)
+        if self.previous:
+            self.previous.next = tag
+        self.previous = tag
+        self.pushTag(tag)
+        if selfClosing or self.isSelfClosingTag(name):
+            self.popTag()                
+        if name in self.QUOTE_TAGS:
+            #print "Beginning quote (%s)" % name
+            self.quoteStack.append(name)
+            self.literal = 1
+        return tag
+
+    def unknown_endtag(self, name):
+        #print "End tag %s" % name
+        if self.quoteStack and self.quoteStack[-1] != name:
+            #This is not a real end tag.
+            #print "</%s> is not real!" % name
+            self.handle_data('</%s>' % name)
+            return
+        self.endData()
+        self._popToTag(name)
+        if self.quoteStack and self.quoteStack[-1] == name:
+            self.quoteStack.pop()
+            self.literal = (len(self.quoteStack) > 0)
+
+    def handle_data(self, data):
+        self.currentData.append(data)
+
+    def _toStringSubclass(self, text, subclass):
+        """Adds a certain piece of text to the tree as a NavigableString
+        subclass."""
+        self.endData()
+        self.handle_data(text)
+        self.endData(subclass)
+
+    def handle_pi(self, text):
+        """Handle a processing instruction as a ProcessingInstruction
+        object, possibly one with a %SOUP-ENCODING% slot into which an
+        encoding will be plugged later."""
+        if text[:3] == "xml":
+            text = "xml version='1.0' encoding='%SOUP-ENCODING%'"
+        self._toStringSubclass(text, ProcessingInstruction)
+
+    def handle_comment(self, text):
+        "Handle comments as Comment objects."
+        self._toStringSubclass(text, Comment)
+
+    def handle_charref(self, ref):
+        "Handle character references as data."
+        if self.convertEntities in [self.HTML_ENTITIES,
+                                    self.XML_ENTITIES]:
+            data = unichr(int(ref))
+        else:
+            data = '&#%s;' % ref
+        self.handle_data(data)
+
+    def handle_entityref(self, ref):
+        """Handle entity references as data, possibly converting known
+        HTML entity references to the corresponding Unicode
+        characters."""
+        data = None
+        if self.convertEntities == self.HTML_ENTITIES or \
+               (self.convertEntities == self.XML_ENTITIES and \
+                self.XML_ENTITY_LIST.get(ref)):
+            try:
+                data = unichr(name2codepoint[ref])
+            except KeyError:
+                pass
+        if not data:
+            data = '&%s;' % ref
+        self.handle_data(data)
+        
+    def handle_decl(self, data):
+        "Handle DOCTYPEs and the like as Declaration objects."
+        self._toStringSubclass(data, Declaration)
+
+    def parse_declaration(self, i):
+        """Treat a bogus SGML declaration as raw data. Treat a CDATA
+        declaration as a CData object."""
+        j = None
+        if self.rawdata[i:i+9] == '<![CDATA[':
+             k = self.rawdata.find(']]>', i)
+             if k == -1:
+                 k = len(self.rawdata)
+             data = self.rawdata[i+9:k]
+             j = k+3
+             self._toStringSubclass(data, CData)
+        else:
+            try:
+                j = SGMLParser.parse_declaration(self, i)
+            except SGMLParseError:
+                toHandle = self.rawdata[i:]
+                self.handle_data(toHandle)
+                j = i + len(toHandle)
+        return j
+
+class BeautifulSoup(BeautifulStoneSoup):
+
+    """This parser knows the following facts about HTML:
+
+    * Some tags have no closing tag and should be interpreted as being
+      closed as soon as they are encountered.
+
+    * The text inside some tags (ie. 'script') may contain tags which
+      are not really part of the document and which should be parsed
+      as text, not tags. If you want to parse the text as tags, you can
+      always fetch it and parse it explicitly.
+
+    * Tag nesting rules:
+
+      Most tags can't be nested at all. For instance, the occurance of
+      a <p> tag should implicitly close the previous <p> tag.
+
+       <p>Para1<p>Para2
+        should be transformed into:
+       <p>Para1</p><p>Para2
+
+      Some tags can be nested arbitrarily. For instance, the occurance
+      of a <blockquote> tag should _not_ implicitly close the previous
+      <blockquote> tag.
+
+       Alice said: <blockquote>Bob said: <blockquote>Blah
+        should NOT be transformed into:
+       Alice said: <blockquote>Bob said: </blockquote><blockquote>Blah
+
+      Some tags can be nested, but the nesting is reset by the
+      interposition of other tags. For instance, a <tr> tag should
+      implicitly close the previous <tr> tag within the same <table>,
+      but not close a <tr> tag in another table.
+
+       <table><tr>Blah<tr>Blah
+        should be transformed into:
+       <table><tr>Blah</tr><tr>Blah
+        but,
+       <tr>Blah<table><tr>Blah
+        should NOT be transformed into
+       <tr>Blah<table></tr><tr>Blah
+
+    Differing assumptions about tag nesting rules are a major source
+    of problems with the BeautifulSoup class. If BeautifulSoup is not
+    treating as nestable a tag your page author treats as nestable,
+    try ICantBelieveItsBeautifulSoup, MinimalSoup, or
+    BeautifulStoneSoup before writing your own subclass."""
+
+    def __init__(self, *args, **kwargs):
+        if not kwargs.has_key('smartQuotesTo'):
+            kwargs['smartQuotesTo'] = self.HTML_ENTITIES
+        BeautifulStoneSoup.__init__(self, *args, **kwargs)
+
+    SELF_CLOSING_TAGS = buildTagMap(None,
+                                    ['br' , 'hr', 'input', 'img', 'meta',
+                                    'spacer', 'link', 'frame', 'base'])
+
+    QUOTE_TAGS = {'script': None}
+    
+    #According to the HTML standard, each of these inline tags can
+    #contain another tag of the same type. Furthermore, it's common
+    #to actually use these tags this way.
+    NESTABLE_INLINE_TAGS = ['span', 'font', 'q', 'object', 'bdo', 'sub', 'sup',
+                            'center']
+
+    #According to the HTML standard, these block tags can contain
+    #another tag of the same type. Furthermore, it's common
+    #to actually use these tags this way.
+    NESTABLE_BLOCK_TAGS = ['blockquote', 'div', 'fieldset', 'ins', 'del']
+
+    #Lists can contain other lists, but there are restrictions.    
+    NESTABLE_LIST_TAGS = { 'ol' : [],
+                           'ul' : [],
+                           'li' : ['ul', 'ol'],
+                           'dl' : [],
+                           'dd' : ['dl'],
+                           'dt' : ['dl'] }
+
+    #Tables can contain other tables, but there are restrictions.    
+    NESTABLE_TABLE_TAGS = {'table' : [], 
+                           'tr' : ['table', 'tbody', 'tfoot', 'thead'],
+                           'td' : ['tr'],
+                           'th' : ['tr'],
+                           'thead' : ['table'],
+                           'tbody' : ['table'],
+                           'tfoot' : ['table'],
+                           }
+
+    NON_NESTABLE_BLOCK_TAGS = ['address', 'form', 'p', 'pre']
+
+    #If one of these tags is encountered, all tags up to the next tag of
+    #this type are popped.
+    RESET_NESTING_TAGS = buildTagMap(None, NESTABLE_BLOCK_TAGS, 'noscript',
+                                     NON_NESTABLE_BLOCK_TAGS,
+                                     NESTABLE_LIST_TAGS,
+                                     NESTABLE_TABLE_TAGS)
+
+    NESTABLE_TAGS = buildTagMap([], NESTABLE_INLINE_TAGS, NESTABLE_BLOCK_TAGS,
+                                NESTABLE_LIST_TAGS, NESTABLE_TABLE_TAGS)
+
+    # Used to detect the charset in a META tag; see start_meta
+    CHARSET_RE = re.compile("((^|;)\s*charset=)([^;]*)")
+
+    def start_meta(self, attrs):
+        """Beautiful Soup can detect a charset included in a META tag,
+        try to convert the document to that charset, and re-parse the
+        document from the beginning."""
+        httpEquiv = None
+        contentType = None
+        contentTypeIndex = None
+        tagNeedsEncodingSubstitution = False
+
+        for i in range(0, len(attrs)):
+            key, value = attrs[i]
+            key = key.lower()
+            if key == 'http-equiv':
+                httpEquiv = value
+            elif key == 'content':
+                contentType = value
+                contentTypeIndex = i
+
+        if httpEquiv and contentType: # It's an interesting meta tag.
+            match = self.CHARSET_RE.search(contentType)
+            if match:
+                if getattr(self, 'declaredHTMLEncoding') or \
+                       (self.originalEncoding == self.fromEncoding):
+                    # This is our second pass through the document, or
+                    # else an encoding was specified explicitly and it
+                    # worked. Rewrite the meta tag.
+                    newAttr = self.CHARSET_RE.sub\
+                              (lambda(match):match.group(1) +
+                               "%SOUP-ENCODING%", value)
+                    attrs[contentTypeIndex] = (attrs[contentTypeIndex][0],
+                                               newAttr)
+                    tagNeedsEncodingSubstitution = True
+                else:
+                    # This is our first pass through the document.
+                    # Go through it again with the new information.
+                    newCharset = match.group(3)
+                    if newCharset and newCharset != self.originalEncoding:
+                        self.declaredHTMLEncoding = newCharset
+                        self._feed(self.declaredHTMLEncoding)
+                        raise StopParsing
+        tag = self.unknown_starttag("meta", attrs)
+        if tagNeedsEncodingSubstitution:
+            tag.containsSubstitutions = True
+
+class StopParsing(Exception):
+    pass
+   
+class ICantBelieveItsBeautifulSoup(BeautifulSoup):
+
+    """The BeautifulSoup class is oriented towards skipping over
+    common HTML errors like unclosed tags. However, sometimes it makes
+    errors of its own. For instance, consider this fragment:
+
+     <b>Foo<b>Bar</b></b>
+
+    This is perfectly valid (if bizarre) HTML. However, the
+    BeautifulSoup class will implicitly close the first b tag when it
+    encounters the second 'b'. It will think the author wrote
+    "<b>Foo<b>Bar", and didn't close the first 'b' tag, because
+    there's no real-world reason to bold something that's already
+    bold. When it encounters '</b></b>' it will close two more 'b'
+    tags, for a grand total of three tags closed instead of two. This
+    can throw off the rest of your document structure. The same is
+    true of a number of other tags, listed below.
+
+    It's much more common for someone to forget to close a 'b' tag
+    than to actually use nested 'b' tags, and the BeautifulSoup class
+    handles the common case. This class handles the not-co-common
+    case: where you can't believe someone wrote what they did, but
+    it's valid HTML and BeautifulSoup screwed up by assuming it
+    wouldn't be."""
+
+    I_CANT_BELIEVE_THEYRE_NESTABLE_INLINE_TAGS = \
+     ['em', 'big', 'i', 'small', 'tt', 'abbr', 'acronym', 'strong',
+      'cite', 'code', 'dfn', 'kbd', 'samp', 'strong', 'var', 'b',
+      'big']
+
+    I_CANT_BELIEVE_THEYRE_NESTABLE_BLOCK_TAGS = ['noscript']
+
+    NESTABLE_TAGS = buildTagMap([], BeautifulSoup.NESTABLE_TAGS,
+                                I_CANT_BELIEVE_THEYRE_NESTABLE_BLOCK_TAGS,
+                                I_CANT_BELIEVE_THEYRE_NESTABLE_INLINE_TAGS)
+
+class MinimalSoup(BeautifulSoup):
+    """The MinimalSoup class is for parsing HTML that contains
+    pathologically bad markup. It makes no assumptions about tag
+    nesting, but it does know which tags are self-closing, that
+    <script> tags contain Javascript and should not be parsed, that
+    META tags may contain encoding information, and so on.
+
+    This also makes it better for subclassing than BeautifulStoneSoup
+    or BeautifulSoup."""
+    
+    RESET_NESTING_TAGS = buildTagMap('noscript')
+    NESTABLE_TAGS = {}
+
+class BeautifulSOAP(BeautifulStoneSoup):
+    """This class will push a tag with only a single string child into
+    the tag's parent as an attribute. The attribute's name is the tag
+    name, and the value is the string child. An example should give
+    the flavor of the change:
+
+    <foo><bar>baz</bar></foo>
+     =>
+    <foo bar="baz"><bar>baz</bar></foo>
+
+    You can then access fooTag['bar'] instead of fooTag.barTag.string.
+
+    This is, of course, useful for scraping structures that tend to
+    use subelements instead of attributes, such as SOAP messages. Note
+    that it modifies its input, so don't print the modified version
+    out.
+
+    I'm not sure how many people really want to use this class; let me
+    know if you do. Mainly I like the name."""
+
+    def popTag(self):
+        if len(self.tagStack) > 1:
+            tag = self.tagStack[-1]
+            parent = self.tagStack[-2]
+            parent._getAttrMap()
+            if (isinstance(tag, Tag) and len(tag.contents) == 1 and
+                isinstance(tag.contents[0], NavigableString) and 
+                not parent.attrMap.has_key(tag.name)):
+                parent[tag.name] = tag.contents[0]
+        BeautifulStoneSoup.popTag(self)
+
+#Enterprise class names! It has come to our attention that some people
+#think the names of the Beautiful Soup parser classes are too silly
+#and "unprofessional" for use in enterprise screen-scraping. We feel
+#your pain! For such-minded folk, the Beautiful Soup Consortium And
+#All-Night Kosher Bakery recommends renaming this file to
+#"RobustParser.py" (or, in cases of extreme enterprisitude,
+#"RobustParserBeanInterface.class") and using the following
+#enterprise-friendly class aliases:
+class RobustXMLParser(BeautifulStoneSoup):
+    pass
+class RobustHTMLParser(BeautifulSoup):
+    pass
+class RobustWackAssHTMLParser(ICantBelieveItsBeautifulSoup):
+    pass
+class RobustInsanelyWackAssHTMLParser(MinimalSoup):
+    pass
+class SimplifyingSOAPParser(BeautifulSOAP):
+    pass
+
+######################################################
+#
+# Bonus library: Unicode, Dammit
+#
+# This class forces XML data into a standard format (usually to UTF-8
+# or Unicode).  It is heavily based on code from Mark Pilgrim's
+# Universal Feed Parser. It does not rewrite the XML or HTML to
+# reflect a new encoding: that happens in BeautifulStoneSoup.handle_pi
+# (XML) and BeautifulSoup.start_meta (HTML).
+
+# Autodetects character encodings.
+# Download from http://chardet.feedparser.org/
+try:
+    import chardet
+#    import chardet.constants
+#    chardet.constants._debug = 1
+except:
+    chardet = None
+chardet = None
+
+# cjkcodecs and iconv_codec make Python know about more character encodings.
+# Both are available from http://cjkpython.i18n.org/
+# They're built in if you use Python 2.4.
+try:
+    import cjkcodecs.aliases
+except:
+    pass
+try:
+    import iconv_codec
+except:
+    pass
+
+class UnicodeDammit:
+    """A class for detecting the encoding of a *ML document and
+    converting it to a Unicode string. If the source encoding is
+    windows-1252, can replace MS smart quotes with their HTML or XML
+    equivalents."""
+
+    # This dictionary maps commonly seen values for "charset" in HTML
+    # meta tags to the corresponding Python codec names. It only covers
+    # values that aren't in Python's aliases and can't be determined
+    # by the heuristics in find_codec.
+    CHARSET_ALIASES = { "macintosh" : "mac-roman",
+                        "x-sjis" : "shift-jis" }
+    
+    def __init__(self, markup, overrideEncodings=[],
+                 smartQuotesTo='xml'):
+        self.markup, documentEncoding, sniffedEncoding = \
+                     self._detectEncoding(markup)
+        self.smartQuotesTo = smartQuotesTo
+        self.triedEncodings = []
+        if isinstance(markup, unicode):
+            return markup
+
+        u = None
+        for proposedEncoding in overrideEncodings:
+            u = self._convertFrom(proposedEncoding)
+            if u: break
+        if not u:
+            for proposedEncoding in (documentEncoding, sniffedEncoding):
+                u = self._convertFrom(proposedEncoding)
+                if u: break
+                
+        # If no luck and we have auto-detection library, try that:
+        if not u and chardet and not isinstance(self.markup, unicode):
+            u = self._convertFrom(chardet.detect(self.markup)['encoding'])
+
+        # As a last resort, try utf-8 and windows-1252:
+        if not u:
+            for proposed_encoding in ("utf-8", "windows-1252"):
+                u = self._convertFrom(proposed_encoding)
+                if u: break
+        self.unicode = u
+        if not u: self.originalEncoding = None
+
+    def _subMSChar(self, orig):
+        """Changes a MS smart quote character to an XML or HTML
+        entity."""
+        sub = self.MS_CHARS.get(orig)
+        if type(sub) == types.TupleType:
+            if self.smartQuotesTo == 'xml':
+                sub = '&#x%s;' % sub[1]
+            else:
+                sub = '&%s;' % sub[0]
+        return sub            
+
+    def _convertFrom(self, proposed):        
+        proposed = self.find_codec(proposed)
+        if not proposed or proposed in self.triedEncodings:
+            return None
+        self.triedEncodings.append(proposed)
+        markup = self.markup
+
+        # Convert smart quotes to HTML if coming from an encoding
+        # that might have them.
+        if self.smartQuotesTo and proposed in("windows-1252",
+                                              "ISO-8859-1",
+                                              "ISO-8859-2"):
+            markup = re.compile("([\x80-\x9f])").sub \
+                     (lambda(x): self._subMSChar(x.group(1)),
+                      markup)
+
+        try:
+            # print "Trying to convert document to %s" % proposed
+            u = self._toUnicode(markup, proposed)
+            self.markup = u       
+            self.originalEncoding = proposed
+        except Exception, e:
+            # print "That didn't work!"
+            # print e
+            return None        
+        #print "Correct encoding: %s" % proposed
+        return self.markup
+
+    def _toUnicode(self, data, encoding):
+        '''Given a string and its encoding, decodes the string into Unicode.
+        %encoding is a string recognized by encodings.aliases'''
+
+        # strip Byte Order Mark (if present)
+        if (len(data) >= 4) and (data[:2] == '\xfe\xff') \
+               and (data[2:4] != '\x00\x00'):
+            encoding = 'utf-16be'
+            data = data[2:]
+        elif (len(data) >= 4) and (data[:2] == '\xff\xfe') \
+                 and (data[2:4] != '\x00\x00'):
+            encoding = 'utf-16le'
+            data = data[2:]
+        elif data[:3] == '\xef\xbb\xbf':
+            encoding = 'utf-8'
+            data = data[3:]
+        elif data[:4] == '\x00\x00\xfe\xff':
+            encoding = 'utf-32be'
+            data = data[4:]
+        elif data[:4] == '\xff\xfe\x00\x00':
+            encoding = 'utf-32le'
+            data = data[4:]
+        newdata = unicode(data, encoding)
+        return newdata
+    
+    def _detectEncoding(self, xml_data):
+        """Given a document, tries to detect its XML encoding."""
+        xml_encoding = sniffed_xml_encoding = None
+        try:
+            if xml_data[:4] == '\x4c\x6f\xa7\x94':
+                # EBCDIC
+                xml_data = self._ebcdic_to_ascii(xml_data)
+            elif xml_data[:4] == '\x00\x3c\x00\x3f':
+                # UTF-16BE
+                sniffed_xml_encoding = 'utf-16be'
+                xml_data = unicode(xml_data, 'utf-16be').encode('utf-8')
+            elif (len(xml_data) >= 4) and (xml_data[:2] == '\xfe\xff') \
+                     and (xml_data[2:4] != '\x00\x00'):
+                # UTF-16BE with BOM
+                sniffed_xml_encoding = 'utf-16be'
+                xml_data = unicode(xml_data[2:], 'utf-16be').encode('utf-8')
+            elif xml_data[:4] == '\x3c\x00\x3f\x00':
+                # UTF-16LE
+                sniffed_xml_encoding = 'utf-16le'
+                xml_data = unicode(xml_data, 'utf-16le').encode('utf-8')
+            elif (len(xml_data) >= 4) and (xml_data[:2] == '\xff\xfe') and \
+                     (xml_data[2:4] != '\x00\x00'):
+                # UTF-16LE with BOM
+                sniffed_xml_encoding = 'utf-16le'
+                xml_data = unicode(xml_data[2:], 'utf-16le').encode('utf-8')
+            elif xml_data[:4] == '\x00\x00\x00\x3c':
+                # UTF-32BE
+                sniffed_xml_encoding = 'utf-32be'
+                xml_data = unicode(xml_data, 'utf-32be').encode('utf-8')
+            elif xml_data[:4] == '\x3c\x00\x00\x00':
+                # UTF-32LE
+                sniffed_xml_encoding = 'utf-32le'
+                xml_data = unicode(xml_data, 'utf-32le').encode('utf-8')
+            elif xml_data[:4] == '\x00\x00\xfe\xff':
+                # UTF-32BE with BOM
+                sniffed_xml_encoding = 'utf-32be'
+                xml_data = unicode(xml_data[4:], 'utf-32be').encode('utf-8')
+            elif xml_data[:4] == '\xff\xfe\x00\x00':
+                # UTF-32LE with BOM
+                sniffed_xml_encoding = 'utf-32le'
+                xml_data = unicode(xml_data[4:], 'utf-32le').encode('utf-8')
+            elif xml_data[:3] == '\xef\xbb\xbf':
+                # UTF-8 with BOM
+                sniffed_xml_encoding = 'utf-8'
+                xml_data = unicode(xml_data[3:], 'utf-8').encode('utf-8')
+            else:
+                sniffed_xml_encoding = 'ascii'
+                pass
+            xml_encoding_match = re.compile \
+                                 ('^<\?.*encoding=[\'"](.*?)[\'"].*\?>')\
+                                 .match(xml_data)
+        except:
+            xml_encoding_match = None
+        if xml_encoding_match:
+            xml_encoding = xml_encoding_match.groups()[0].lower()
+            if sniffed_xml_encoding and \
+               (xml_encoding in ('iso-10646-ucs-2', 'ucs-2', 'csunicode',
+                                 'iso-10646-ucs-4', 'ucs-4', 'csucs4',
+                                 'utf-16', 'utf-32', 'utf_16', 'utf_32',
+                                 'utf16', 'u16')):
+                xml_encoding = sniffed_xml_encoding
+        return xml_data, xml_encoding, sniffed_xml_encoding
+
+
+    def find_codec(self, charset):
+        return self._codec(self.CHARSET_ALIASES.get(charset, charset)) \
+               or (charset and self._codec(charset.replace("-", ""))) \
+               or (charset and self._codec(charset.replace("-", "_"))) \
+               or charset
+
+    def _codec(self, charset):
+        if not charset: return charset 
+        codec = None
+        try:
+            codecs.lookup(charset)
+            codec = charset
+        except LookupError:
+            pass
+        return codec
+
+    EBCDIC_TO_ASCII_MAP = None
+    def _ebcdic_to_ascii(self, s):
+        c = self.__class__
+        if not c.EBCDIC_TO_ASCII_MAP:
+            emap = (0,1,2,3,156,9,134,127,151,141,142,11,12,13,14,15,
+                    16,17,18,19,157,133,8,135,24,25,146,143,28,29,30,31,
+                    128,129,130,131,132,10,23,27,136,137,138,139,140,5,6,7,
+                    144,145,22,147,148,149,150,4,152,153,154,155,20,21,158,26,
+                    32,160,161,162,163,164,165,166,167,168,91,46,60,40,43,33,
+                    38,169,170,171,172,173,174,175,176,177,93,36,42,41,59,94,
+                    45,47,178,179,180,181,182,183,184,185,124,44,37,95,62,63,
+                    186,187,188,189,190,191,192,193,194,96,58,35,64,39,61,34,
+                    195,97,98,99,100,101,102,103,104,105,196,197,198,199,200,
+                    201,202,106,107,108,109,110,111,112,113,114,203,204,205,
+                    206,207,208,209,126,115,116,117,118,119,120,121,122,210,
+                    211,212,213,214,215,216,217,218,219,220,221,222,223,224,
+                    225,226,227,228,229,230,231,123,65,66,67,68,69,70,71,72,
+                    73,232,233,234,235,236,237,125,74,75,76,77,78,79,80,81,
+                    82,238,239,240,241,242,243,92,159,83,84,85,86,87,88,89,
+                    90,244,245,246,247,248,249,48,49,50,51,52,53,54,55,56,57,
+                    250,251,252,253,254,255)
+            import string
+            c.EBCDIC_TO_ASCII_MAP = string.maketrans( \
+            ''.join(map(chr, range(256))), ''.join(map(chr, emap)))
+        return s.translate(c.EBCDIC_TO_ASCII_MAP)
+
+    MS_CHARS = { '\x80' : ('euro', '20AC'),
+                 '\x81' : ' ',
+                 '\x82' : ('sbquo', '201A'),
+                 '\x83' : ('fnof', '192'),
+                 '\x84' : ('bdquo', '201E'),
+                 '\x85' : ('hellip', '2026'),
+                 '\x86' : ('dagger', '2020'),
+                 '\x87' : ('Dagger', '2021'),
+                 '\x88' : ('circ', '2C6'),
+                 '\x89' : ('permil', '2030'),
+                 '\x8A' : ('Scaron', '160'),
+                 '\x8B' : ('lsaquo', '2039'),
+                 '\x8C' : ('OElig', '152'),
+                 '\x8D' : '?',
+                 '\x8E' : ('#x17D', '17D'),
+                 '\x8F' : '?',
+                 '\x90' : '?',
+                 '\x91' : ('lsquo', '2018'),
+                 '\x92' : ('rsquo', '2019'),
+                 '\x93' : ('ldquo', '201C'),
+                 '\x94' : ('rdquo', '201D'),
+                 '\x95' : ('bull', '2022'),
+                 '\x96' : ('ndash', '2013'),
+                 '\x97' : ('mdash', '2014'),
+                 '\x98' : ('tilde', '2DC'),
+                 '\x99' : ('trade', '2122'),
+                 '\x9a' : ('scaron', '161'),
+                 '\x9b' : ('rsaquo', '203A'),
+                 '\x9c' : ('oelig', '153'),
+                 '\x9d' : '?',
+                 '\x9e' : ('#x17E', '17E'),
+                 '\x9f' : ('Yuml', ''),}
+
+#######################################################################
+
+
+#By default, act as an HTML pretty-printer.
+if __name__ == '__main__':
+    import sys
+    soup = BeautifulStoneSoup(sys.stdin.read())
+    print soup.prettify()

File GIS/usage/heatmap/README

Empty file added.

File GIS/usage/heatmap/bbmp-ward.svg

+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" version="1.1" id="Map" width="792" height="612.0159268544462">
+  <g id="Areas" inkscape:groupmode="layer" inkscape:label="Areas" clip-path="url(#clip)" visibility="visible" transform="translate(-145990.993432697,24801.649630119347) scale(0.36017928983801745)">
+    <path d="M -942472.5600891819 -471233.66205071297 L -942472.5600891819 -471233.66205071297 L -941430.5985257414 -471233.66205071297 L -940383.4009745446 -471233.66205071297 L -939336.203423348 -471233.66205071297 L -938289.0058721516 -471233.66205071297 L -937241.808320955 -471233.66205071297 L -936194.6107697585 -471233.66205071297 L -935147.4132185617 -471233.66205071297 L -934100.2156673651 -471233.66205071297 L -933053.0181161686 -471233.66205071297 L -932005.8205649721 -471233.66205071297 L -930958.6230137754 -471233.66205071297 L -929911.4254625788 -471233.66205071297 L -928864.2279113822 -471233.66205071297 L -927817.0303601854 -471233.66205071297 L -926769.832808989 -471233.66205071297 L -925722.6352577924 -471233.66205071297 L -924675.4377065956 -471233.66205071297 L -923628.2401553992 -471233.66205071297 L -922581.0426042025 -471233.66205071297 L -921533.845053006 -471233.66205071297 L -920486.6475018095 -471233.66205071297 L -919439.4499506127 -471233.66205071297 L -918392.2523994162 -471233.66205071297 L -917345.0548482194 -471233.66205071297 L -916297.857297023 -471233.66205071297 L -915250.6597458265 -471233.66205071297 L -914203.4621946298 -471233.66205071297 L -913156.2646434333 -471233.66205071297 L -912109.0670922365 -471233.66205071297 L -911061.8695410399 -471233.66205071297 L -910014.6719898435 -471233.66205071297 L -908967.4744386469 -471233.66205071297 L -907920.2768874503 -471233.66205071297 L -906873.0793362536 -471233.66205071297 L -905825.881785057 -471233.66205071297 L -904778.6842338603 -471233.66205071297 L -903731.4866826638 -471233.66205071297 L -902684.2891314673 -471233.66205071297 L -901637.0915802706 -471233.66205071297 L -900589.894029074 -471233.66205071297 L -899542.6964778774 -471233.66205071297 L -898495.4989266809 -471233.66205071297 L -897448.3013754843 -471233.66205071297 L -896401.1038242875 -471233.66205071297 L -895353.9062730911 -471233.66205071297 L -894306.7087218945 -471233.66205071297 L -893259.5111706977 -471233.66205071297 L -892212.3136195013 -471233.66205071297 L -891165.1160683046 -471233.66205071297 L -890117.9185171081 -471233.66205071297 L -889070.7209659114 -471233.66205071297 L -888023.5234147147 -471233.66205071297 L -886976.3258635183 -471233.66205071297 L -885929.1283123218 -471233.66205071297 L -884881.930761125 -471233.66205071297 L -883834.7332099285 -471233.66205071297 L -882787.5356587319 -471233.66205071297 L -881740.3381075351 -471233.66205071297 L -880693.1405563386 -471233.66205071297 L -879645.9430051422 -471233.66205071297 L -878598.7454539456 -471233.66205071297 L -877551.547902749 -471233.66205071297 L -876504.3503515522 -471233.66205071297 L -875457.1528003557 -471233.66205071297 L -874409.9552491591 -471233.66205071297 L -873362.7576979627 -471233.66205071297 L -872315.560146766 -471233.66205071297 L -871268.3625955693 -471233.66205071297 L -870221.1650443728 -471233.66205071297 L -869173.9674931761 -471233.66205071297 L -868126.7699419796 -471233.66205071297 L -867079.5723907831 -471233.66205071297 L -866032.3748395866 -471233.66205071297 L -864985.1772883898 -471233.66205071297 L -863937.9797371932 -471233.66205071297 L -862890.7821859966 -471233.66205071297 L -861843.5846348001 -471233.66205071297 L -860796.3870836037 -471233.66205071297 L -859749.1895324067 -471233.66205071297 L -858701.9919812103 -471233.66205071297 L -857654.7944300135 -471233.66205071297 L -856607.5968788171 -471233.66205071297 L -855560.3993276205 -471233.66205071297 L -854513.2017764238 -471233.66205071297 L -853466.0042252272 -471233.66205071297 L -852418.8066740307 -471233.66205071297 L -851371.609122834 -471233.66205071297 L -850324.4115716375 -471233.66205071297 L -849277.2140204409 -471233.66205071297 L -848230.0164692443 -471233.66205071297 L -847182.8189180477 -471233.66205071297 L -846135.621366851 -471233.66205071297 L -845088.4238156546 -471233.66205071297 L -844041.226264458 -471233.66205071297 L -842994.0287132614 -471233.66205071297 L -841946.8311620648 -471233.66205071297 L -840899.6336108681 -471233.66205071297 L -839852.4360596716 -471233.66205071297 L -838805.2385084749 -471233.66205071297 L -837758.0409572785 -471233.66205071297 L -836710.8434060818 -471233.66205071297 L -835663.6458548852 -471233.66205071297 L -834616.4483036886 -471233.66205071297 L -833569.250752492 -471233.66205071297 L -832522.0532012954 -471233.66205071297 L -831474.8556500989 -471233.66205071297 L -830427.6580989023 -471233.66205071297 L -829380.4605477055 -471233.66205071297 L -828333.2629965091 -471233.66205071297 L -827286.0654453125 -471233.66205071297 L -826238.8678941157 -471233.66205071297 L -825191.6703429194 -471233.66205071297 L -824144.4727917225 -471233.66205071297 L -823097.2752405261 -471233.66205071297 L -822050.0776893295 -471233.66205071297 L -821002.8801381328 -471233.66205071297 L -819955.6825869363 -471233.66205071297 L -818908.4850357397 -471233.66205071297 L -817861.2874845429 -471233.66205071297 L -816814.0899333464 -471233.66205071297 L -815766.89238215 -471233.66205071297 L -814719.6948309533 -471233.66205071297 L -813672.4972797567 -471233.66205071297 L -812625.29972856 -471233.66205071297 L -811578.1021773635 -471233.66205071297 L -810530.9046261669 -471233.66205071297 L -809483.7070749704 -471233.66205071297 L -808436.5095237738 -471233.66205071297 L -807389.3119725771 -471233.66205071297 L -806342.1144213806 -471233.66205071297 L -805294.9168701839 -471233.66205071297 L -804247.7193189873 -471233.66205071297 L -803200.5217677907 -471233.66205071297 L -802153.3242165942 -471233.66205071297 L -801106.1266653975 -471233.66205071297 L -800058.929114201 -471233.66205071297 L -799011.7315630044 -471233.66205071297 L -797964.5340118078 -471233.66205071297 L -796917.3364606112 -471233.66205071297 L -795870.1389094145 -471233.66205071297 L -794822.9413582181 -471233.66205071297 L -793775.7438070215 -471233.66205071297 L -792728.5462558249 -471233.66205071297 L -791681.3487046283 -471233.66205071297 L -790634.1511534315 -471233.66205071297 L -789586.9536022351 -471233.66205071297 L -788539.7560510385 -471233.66205071297 L -787492.5584998418 -471233.66205071297 L -786445.3609486453 -471233.66205071297 L -785398.1633974487 -471233.66205071297 L -784350.965846252 -471233.66205071297 L -783303.7682950555 -471233.66205071297 L -782256.570743859 -471233.66205071297 L -781209.3731926621 -471233.66205071297 L -780162.1756414658 -471233.66205071297 L -779114.978090269 -471233.66205071297 L -778067.7805390725 -471233.66205071297 L -777020.582987876 -471233.66205071297 L -775973.3854366792 -471233.66205071297 L -774926.1878854827 -471233.66205071297 L -773878.9903342861 -471233.66205071297 L -772831.7927830896 -471233.66205071297 L -771784.595231893 -471233.66205071297 L -770737.3976806963 -471233.66205071297 L -769690.2001294997 -471233.66205071297 L -768643.0025783031 -471233.66205071297 L -767595.8050271064 -471233.66205071297 L -766548.60747591 -471233.66205071297 L -765501.4099247132 -471233.66205071297 L -764454.2123735166 -471233.66205071297 L -763407.0148223201 -471233.66205071297 L -762359.8172711234 -471233.66205071297 L -761312.6197199267 -471233.66205071297 L -760265.4221687302 -471233.66205071297 L -759218.2246175335 -471233.66205071297 L -758171.0270663371 -471233.66205071297 L -757123.8295151404 -471233.66205071297 L -756076.6319639437 -471233.66205071297 L -755029.4344127472 -471233.66205071297 L -753982.2368615505 -471233.66205071297 L -752935.0393103538 -471233.66205071297 L -751887.8417591573 -471233.66205071297 L -750840.6442079607 -471233.66205071297 L -749793.4466567641 -471233.66205071297 L -748746.2491055675 -471233.66205071297 L -747699.0515543709 -471233.66205071297 L -746651.8540031742 -471233.66205071297 L -745604.6564519776 -471233.66205071297 L -744557.4589007809 -471233.66205071297 L -743510.2613495843 -471233.66205071297 L -742463.0637983878 -471233.66205071297 L -741415.8662471912 -471233.66205071297 L -740368.6686959945 -471233.66205071297 L -739321.471144798 -471233.66205071297 L -738274.2735936013 -471233.66205071297 L -737227.0760424046 -471233.66205071297 L -736179.8784912081 -471233.66205071297 L -735132.6809400114 -471233.66205071297 L -734085.4833888148 -471233.66205071297 L -733038.2858376183 -471233.66205071297 L -731991.0882864216 -471233.66205071297 L -730943.890735225 -471233.66205071297 L -729896.6931840285 -471233.66205071297 L -728849.4956328317 -471233.66205071297 L -727802.2980816351 -471233.66205071297 L -726755.1005304385 -471233.66205071297 L -725707.9029792419 -471233.66205071297 L -724660.7054280454 -471233.66205071297 L -723613.5078768487 -471233.66205071297 L -722566.3103256521 -471233.66205071297 L -721519.1127744556 -471233.66205071297 L -720471.9152232589 -471233.66205071297 L -719424.7176720622 -471233.66205071297 L -718377.5201208655 -471233.66205071297 L -717330.3225696692 -471233.66205071297 L -716283.1250184724 -471233.66205071297 L -715235.9274672758 -471233.66205071297 L -714188.7299160792 -471233.66205071297 L -713141.5323648826 -471233.66205071297 L -712094.334813686 -471233.66205071297 L -711047.1372624893 -471233.66205071297 L -709999.9397112927 -471233.66205071297 L -708952.7421600963 -471233.66205071297 L -707905.5446088995 -471233.66205071297 L -706858.347057703 -471233.66205071297 L -705811.1495065063 -471233.66205071297 L -704763.9519553097 -471233.66205071297 L -703716.754404113 -471233.66205071297 L -702669.5568529164 -471233.66205071297 L -701622.3593017198 -471233.66205071297 L -700575.1617505234 -471233.66205071297 L -699527.9641993267 -471233.66205071297 L -698480.76664813 -471233.66205071297 L -697433.5690969334 -471233.66205071297 L -696386.3715457369 -471233.66205071297 L -695339.1739945401 -471233.66205071297 L -694291.9764433434 -471233.66205071297 L -693244.7788921469 -471233.66205071297 L -692197.5813409504 -471233.66205071297 L -691150.3837897538 -471233.66205071297 L -690103.1862385571 -471233.66205071297 L -689055.9886873605 -471233.66205071297 L -688008.791136164 -471233.66205071297 L -686961.5935849673 -471233.66205071297 L -685914.3960337705 -471233.66205071297 L -684867.198482574 -471233.66205071297 L -683820.0009313776 -471233.66205071297 L -682772.8033801808 -471233.66205071297 L -681725.6058289842 -471233.66205071297 L -680678.4082777876 -471233.66205071297 L -679631.2107265911 -471233.66205071297 L -678584.0131753944 -471233.66205071297 L -677536.8156241976 -471233.66205071297 L -676489.6180730012 -471233.66205071297 L -675442.4205218047 -471233.66205071297 L -674395.2229706079 -471233.66205071297 L -673348.0254194112 -471233.66205071297 L -672300.8278682147 -471233.66205071297 L -671253.6303170181 -471233.66205071297 L -670206.4327658215 -471233.66205071297 L -669159.2352146248 -471233.66205071297 L -668112.0376634282 -471233.66205071297 L -667064.8401122318 -471233.66205071297 L -666017.6425610351 -471233.66205071297 L -664970.4450098383 -471233.66205071297 L -663923.2474586418 -471233.66205071297 L -662876.0499074453 -471233.66205071297 L -661828.8523562485 -471233.66205071297 L -660781.6548050519 -471233.66205071297 L -659734.4572538553 -471233.66205071297 L -658687.2597026589 -471233.66205071297 L -657640.0621514622 -471233.66205071297 L -656592.8646002654 -471233.66205071297 L -655545.667049069 -471233.66205071297 L -654498.4694978724 -471233.66205071297 L -653451.2719466756 -471233.66205071297 L -652404.0743954789 -471233.66205071297 L -651356.8768442824 -471233.66205071297 L -650309.6792930859 -471233.66205071297 L -649262.4817418893 -471233.66205071297 L -648215.2841906926 -471233.66205071297 L -647168.086639496 -471233.66205071297 L -646120.8890882995 -471233.66205071297 L -645073.6915371028 -471233.66205071297 L -644026.493985906 -471233.66205071297 L -642979.2964347097 -471233.66205071297 L -641932.0988835131 -471233.66205071297 L -640884.9013323163 -471233.66205071297 L -639837.7037811197 -471233.66205071297 L -638790.5062299231 -471233.66205071297 L -637743.3086787265 -471233.66205071297 L -636696.1111275299 -471233.66205071297 L -635648.9135763332 -471233.66205071297 L -634601.7160251368 -471233.66205071297 L -633554.5184739402 -471233.66205071297 L -632507.3209227435 -471233.66205071297 L -631460.1233715467 -471233.66205071297 L -630412.9258203502 -471233.66205071297 L -629365.7282691536 -471233.66205071297 L -628318.530717957 -471233.66205071297 L -627271.3331667603 -471233.66205071297 L -626224.1356155638 -471233.66205071297 L -625176.9380643673 -471233.66205071297 L -624129.7405131706 -471233.66205071297 L -623082.5429619738 -471233.66205071297 L -622035.3454107774 -471233.66205071297 L -620988.1478595808 -471233.66205071297 L -619940.950308384 -471233.66205071297 L -618893.7527571874 -471233.66205071297 L -617846.5552059909 -471233.66205071297 L -616799.3576547944 -471233.66205071297 L -615752.1601035977 -471233.66205071297 L -614704.962552401 -471233.66205071297 L -613657.7650012044 -471233.66205071297 L -612610.5674500079 -471233.66205071297 L -611563.3698988112 -471233.66205071297 L -610516.1723476144 -471233.66205071297 L -609468.9747964181 -471233.66205071297 L -608421.7772452214 -471233.66205071297 L -607374.5796940248 -471233.66205071297 L -606327.3821428281 -471233.66205071297 L -605280.1845916315 -471233.66205071297 L -604232.987040435 -471233.66205071297 L -603185.7894892383 -471233.66205071297 L -602138.5919380416 -471233.66205071297 L -601091.3943868452 -471233.66205071297 L -600044.1968356485 -471233.66205071297 L -598996.9992844518 -471233.66205071297 L -597949.8017332552 -471233.66205071297 L -596902.6041820586 -471233.66205071297 L -595855.4066308622 -471233.66205071297 L -594808.2090796654 -471233.66205071297 L -593761.0115284687 -471233.66205071297 L -592713.8139772721 -471233.66205071297 L -591666.6164260756 -471233.66205071297 L -590619.4188748789 -471233.66205071297 L -589572.2213236822 -471233.66205071297 L -588525.0237724858 -471233.66205071297 L -587477.8262212892 -471233.66205071297 L -586430.6286700924 -471233.66205071297 L -585383.4311188958 -471233.66205071297 L -584336.2335676992 -471233.66205071297 L -583289.0360165027 -471233.66205071297 L -582241.838465306 -471233.66205071297 L -581194.6409141093 -471233.66205071297 L -580147.4433629129 -471233.66205071297 L -579100.2458117163 -471233.66205071297 L -578053.0482605196 -471233.66205071297 L -577005.8507093228 -471233.66205071297 L -575958.6531581263 -471233.66205071297 L -574911.4556069298 -471233.66205071297 L -573864.258055733 -471233.66205071297 L -572817.0605045364 -471233.66205071297 L -571769.8629533399 -471233.66205071297 L -570722.6654021434 -471233.66205071297 L -569675.4678509467 -471233.66205071297 L -568628.27029975 -471233.66205071297 L -567581.0727485535 -471233.66205071297 L -566533.8751973569 -471233.66205071297 L -565486.6776461602 -471233.66205071297 L -564439.4800949635 -471233.66205071297 L -563392.282543767 -471233.66205071297 L -562345.0849925705 -471233.66205071297 L -561297.8874413738 -471233.66205071297 L -560250.6898901771 -471233.66205071297 L -559203.4923389805 -471233.66205071297 L -558156.294787784 -471233.66205071297 L -557109.0972365873 -471233.66205071297 L -556061.8996853906 -471233.66205071297 L -555014.7021341942 -471233.66205071297 L -553967.5045829975 -471233.66205071297 L -552920.3070318009 -471233.66205071297 L -551873.1094806042 -471233.66205071297 L -550825.9119294076 -471233.66205071297 L -549778.7143782111 -471233.66205071297 L -548731.5168270144 -471233.66205071297 L -547684.3192758178 -471233.66205071297 L -546637.1217246213 -471233.66205071297 L -545589.9241734246 -471233.66205071297 L -544542.7266222278 -471233.66205071297 L -543495.5290710313 -471233.66205071297 L -542448.3315198347 -471233.66205071297 L -541401.1339686383 -471233.66205071297 L -540353.9364174417 -471233.66205071297 L -539306.7388662449 -471233.66205071297 L -538259.5413150484 -471233.66205071297 L -537212.3437638517 -471233.66205071297 L -536165.1462126549 -471233.66205071297 L -535117.9486614584 -471233.66205071297 L -534070.7511102619 -471233.66205071297 L -533023.5535590653 -471233.66205071297 L -531976.3560078688 -471233.66205071297 L -530929.1584566719 -471233.66205071297 L -529881.9609054754 -471233.66205071297 L -528834.7633542789 -471233.66205071297 L -527787.5658030821 -471233.66205071297 L -526740.3682518855 -471233.66205071297 L -525693.170700689 -471233.66205071297 L -524645.9731494924 -471233.66205071297 L -523598.77559829585 -471233.66205071297 L -522551.578047099 -471233.66205071297 L -521504.38049590256 -471233.66205071297 L -520457.182944706 -471233.66205071297 L -519409.98539350915 -471233.66205071297 L -518362.7878423126 -471233.66205071297 L -517315.590291116 -471233.66205071297 L -516268.3927399195 -471233.66205071297 L -515221.195188723 -471233.66205071297 L -514173.9976375262 -471233.66205071297 L -513126.80008632963 -471233.66205071297 L -512079.6025351331 -471233.66205071297 L -511032.4049839362 -471233.66205071297 L -509985.20743273967 -471233.66205071297 L -508938.0098815431 -471233.66205071297 L -507890.8123303467 -471233.66205071297 L -506843.61477915006 -471233.66205071297 L -505796.41722795326 -471233.66205071297 L -504749.21967675665 -471233.66205071297 L -503702.02212556015 -471233.66205071297 L -502654.8245743633 -471233.66205071297 L -501607.62702316674 -471233.66205071297 L -500560.4294719703 -471233.66205071297 L -499513.23192077375 -471233.66205071297 L -498466.03436957713 -471233.66205071297 L -497418.83681838034 -471233.66205071297 L -496371.6392671837 -471233.66205071297 L -495324.4417159872 -471233.66205071297 L -494277.2441647905 -471233.66205071297 L -493230.0466135939 -471233.66205071297 L -492182.8490623974 -471233.66205071297 L -491135.6515112008 -471233.66205071297 L -490088.4539600042 -471233.66205071297 L -489041.2564088074 -471233.66205071297 L -487994.058857611 -471233.66205071297 L -486946.86130641436 -471233.66205071297 L -485899.66375521757 -471233.66205071297 L -484852.46620402095 -471233.66205071297 L -483805.26865282445 -471233.66205071297 L -482758.0711016279 -471233.66205071297 L -481710.87355043145 -471233.66205071297 L -480663.67599923455 -471233.66205071297 L -479616.47844803805 -471233.66205071297 L -478569.28089684143 -471233.66205071297 L -477522.08334564464 -471233.66205071297 L -476474.885794448 -471233.66205071297 L -475427.6882432515 -471233.66205071297 L -474380.490692055 -471233.66205071297 L -473333.2931408585 -471233.66205071297 L -472286.0955896616 -471233.66205071297 L -471238.8980384651 -471233.66205071297 L -470191.70048726856 -471233.66205071297 L -469144.5029360717 -471233.66205071297 L -468097.30538487516 -471233.66205071297 L -467050.1078336787 -471233.66205071297 L -466002.9102824821 -471233.66205071297 L -464955.7127312856 -471233.66205071297 L -463908.5151800887 -471233.66205071297 L -462861.3176288922 -471233.66205071297 L -461814.12007769564 -471233.66205071297 L -460766.92252649885 -471233.66205071297 L -459719.7249753023 -471233.66205071297 L -458672.5274241058 -471233.66205071297 L -457625.3298729092 -471233.66205071297 L -456578.1323217127 -471233.66205071297 L -455530.93477051577 -471233.66205071297 L -454483.73721931933 -471233.66205071297 L -453436.5396681228 -471233.66205071297 L -452389.3421169259 -471233.66205071297 L -451342.14456572937 -471233.66205071297 L -450294.94701453287 -471233.66205071297 L -449247.74946333625 -471233.66205071297 L -448200.5519121398 -471233.66205071297 L -447153.35436094296 -471233.66205071297 L -446106.1568097464 -471233.66205071297 L -445058.95925854985 -471233.66205071297 L -444011.761707353 -471233.66205071297 L -442964.56415615644 -471233.66205071297 L -441917.36660495994 -471233.66205071297 L -440870.16905376344 -471233.66205071297 L -439822.9715025669 -471233.66205071297 L -438775.77395137004 -471233.66205071297 L -437728.5764001735 -471233.66205071297 L -436681.3788489769 -471233.66205071297 L -435634.1812977801 -471233.66205071297 L -434586.9837465835 -471233.66205071297 L -433539.7861953871 -471233.66205071297 L -432492.5886441905 -471233.66205071297 L -431445.39109299396 -471233.66205071297 L -430398.1935417971 -471233.66205071297 L -429350.9959906006 -471233.66205071297 L -428303.798439404 -471233.66205071297 L -427256.6008882072 -471233.66205071297 L -426209.40333701065 -471233.66205071297 L -425162.20578581415 -471233.66205071297 L -424115.0082346176 -471233.66205071297 L -423067.8106834211 -471233.66205071297 L -422020.6131322243 -471233.66205071297 L -420973.4155810277 -471233.66205071297 L -419926.2180298311 -471233.66205071297 L -418879.0204786343 -471233.66205071297 L -417831.82292743784 -471233.66205071297 L -416784.6253762412 -471233.66205071297 L -415737.4278250447 -471233.66205071297 L -414690.23027384817 -471233.66205071297 L -413643.0327226514 -471233.66205071297 L -412595.83517145476 -471233.66205071297 L -411548.63762025826 -471233.66205071297 L -410501.4400690614 -471233.66205071297 L -409454.2425178649 -471233.66205071297 L -408407.04496666836 -471233.66205071297 L -407359.8474154718 -471233.66205071297 L -406312.64986427524 -471233.66205071297 L -405265.45231307845 -471233.66205071297 L -404218.2547618819 -471233.66205071297 L -403171.05721068534 -471233.66205071297 L -402123.8596594885 -471233.66205071297 L -401076.662108292 -471233.66205071297 L -400029.46455709543 -471233.66205071297 L -398982.2670058989 -471233.66205071297 L -397935.0694547024 -471233.66205071297 L -396887.87190350547 -471233.66205071297 L -395840.67435230897 -471233.66205071297 L -394793.4768011124 -471233.66205071297 L -393746.2792499156 -471233.66205071297 L -392699.081698719 -471233.66205071297 L -391651.88414752256 -471233.66205071297 L -390604.68659632595 -471233.66205071297 L -389557.48904512945 -471233.66205071297 L -388510.29149393266 -471233.66205071297 L -387463.0939427361 -471233.66205071297 L -386415.89639153954 -471233.66205071297 L -385368.6988403427 -471233.66205071297 L -384321.5012891462 -471233.66205071297 L -383274.30373794964 -471233.66205071297 L -382227.1061867531 -471233.66205071297 L -381179.9086355566 -471233.66205071297 L -380132.71108435973 -471233.66205071297 L -379085.5135331632 -471233.66205071297 L -378038.3159819666 -471233.66205071297 L -376991.1184307698 -471233.66205071297 L -375943.92087957327 -471233.66205071297 L -374896.7233283768 -471233.66205071297 L -373849.52577718016 -471233.66205071297 L -372802.32822598366 -471233.66205071297 L -371755.13067478687 -471233.66205071297 L -370707.9331235903 -471233.66205071297 L -369660.7355723937 -471233.66205071297 L -368613.5380211969 -471233.66205071297 L -367566.3404700004 -471233.66205071297 L -366519.14291880385 -471233.66205071297 L -365471.94536760735 -471233.66205071297 L -364424.7478164108 -471233.66205071297 L -363377.55026521394 -471233.66205071297 L -362330.3527140174 -471233.66205071297 L -361283.1551628209 -471233.66205071297 L -360235.957611624 -471233.66205071297 L -359188.7600604275 -471233.66205071297 L -358141.5625092309 -471233.66205071297 L -357094.3649580344 -471233.66205071297 L -356047.16740683786 -471233.66205071297 L -354999.9698556411 -471233.66205071297 L -353952.77230444446 -471233.66205071297 L -352905.57475324796 -471233.66205071297 L -351858.37720205105 -471233.66205071297 L -350811.1796508546 -471233.66205071297 L -349763.982099658 -471233.66205071297 L -348716.78454846155 -471233.66205071297 L -347669.58699726494 -471233.66205071297 L -346622.38944606815 -471233.66205071297 L -345575.1918948716 -471233.66205071297 L -344527.9943436751 -471233.66205071297 L -343480.7967924782 -471233.66205071297 L -342433.5992412817 -471233.66205071297 L -341386.4016900851 -471233.66205071297 L -340339.2041388886 -471233.66205071297 L -339292.00658769207 -471233.66205071297 L -338244.8090364952 -471233.66205071297 L -337197.61148529866 -471233.66205071297 L -336150.41393410217 -471233.66205071297 L -335103.21638290526 -471233.66205071297 L -334056.0188317088 -471233.66205071297 L -333008.8212805122 -471233.66205071297 L -331961.6237293157 -471233.66205071297 L -330914.42617811915 -471233.66205071297 L -329867.22862692236 -471233.66205071297 L -328820.03107572574 -471233.66205071297 L -327772.8335245293 -471233.66205071297 L -326725.6359733324 -471233.66205071297 L -325678.4384221359 -471233.66205071297 L -324631.24087093933 -471233.66205071297 L -323584.04331974284 -471233.66205071297 L -322536.8457685462 -471233.66205071297 L -321489.64821734943 -471233.66205071297 L -320442.4506661529 -471233.66205071297 L -319395.2531149564 -471233.66205071297 L -318348.05556375947 -471233.66205071297 L -317300.85801256297 -471233.66205071297 L -316253.6604613664 -471233.66205071297 L -315206.4629101699 -471233.66205071297 L -314159.26535897335 -471233.66205071297 L -313112.0678077765 -471233.66205071297 L -312064.87025657995 -471233.66205071297 L -311017.67270538345 -471233.66205071297 L -309970.47515418666 -471233.66205071297 L -308923.27760299004 -471233.66205071297 L -307876.08005179354 -471233.66205071297 L -306828.882500597 -471233.66205071297 L -305781.6849494004 -471233.66205071297 L -304734.48739820364 -471233.66205071297 L -303687.2898470071 -471233.66205071297 L -302640.0922958106 -471233.66205071297 L -301592.89474461373 -471233.66205071297 L -300545.6971934172 -471233.66205071297 L -299498.4996422206 -471233.66205071297 L -298451.30209102406 -471233.66205071297 L -297404.10453982756 -471233.66205071297 L -296356.90698863077 -471233.66205071297 L -295309.70943743415 -471233.66205071297 L -294262.51188623765 -471233.66205071297 L -293215.3143350408 -471233.66205071297 L -292168.1167838443 -471233.66205071297 L -291120.91923264775 -471233.66205071297 L -290073.7216814512 -471233.66205071297 L -289026.52413025463 -471233.66205071297 L -287979.3265790578 -471233.66205071297 L -286932.1290278613 -471233.66205071297 L -285884.93147666473 -471233.66205071297 L -284837.7339254679 -471233.66205071297 L -283790.5363742714 -471233.66205071297 L -282743.3388230748 -471233.66205071297 L -281696.14127187827 -471233.66205071297 L -280648.94372068177 -471233.66205071297 L -279601.7461694849 -471233.66205071297 L -278554.54861828836 -471233.66205071297 L -277507.35106709186 -471233.66205071297 L -276460.153515895 -471233.66205071297 L -275412.95596469846 -471233.66205071297 L -274365.75841350196 -471233.66205071297 L -273318.5608623054 -471233.66205071297 L -272271.36331110884 -471233.66205071297 L -271224.165759912 -471233.66205071297 L -270176.9682087158 -471233.66205071297 L -269129.77065751894 -471233.66205071297 L -268082.57310632267 -471233.66205071297 L -267035.3755551259 -471233.66205071297 L -265988.1780039296 -471233.66205071297 L -264940.9804527328 -471233.66205071297 L -263893.78290153656 -471233.66205071297 L -262846.5853503397 -471233.66205071297 L -261799.38779914347 -471233.66205071297 L -260752.19024794662 -471233.66205071297 L -259704.9926967504 -471233.66205071297 L -258657.79514555357 -471233.66205071297 L -257610.59759435733 -471233.66205071297 L -256563.4000431605 -471233.66205071297 L -255516.20249196424 -471233.66205071297 L -254469.00494076737 -471233.66205071297 L -253421.8073895712 -471233.66205071297 L -252374.6098383743 -471233.66205071297 L -251327.4122871781 -471233.66205071297 L -250280.21473598125 -471233.66205071297 L -249233.01718478504 -471233.66205071297 L -248185.81963358817 -471233.66205071297 L -247138.6220823919 -471233.66205071297 L -246091.4245311951 -471233.66205071297 L -245044.22697999884 -471233.66205071297 L -243997.02942880202 -471233.66205071297 L -242949.8318776058 -471233.66205071297 L -241902.63432640894 -471233.66205071297 L -240855.43677521273 -471233.66205071297 L -239808.23922401588 -471233.66205071297 L -238761.0416728196 -471233.66205071297 L -237713.84412162282 -471233.66205071297 L -236666.64657042656 -471233.66205071297 L -235619.4490192297 -471233.66205071297 L -234572.2514680335 -471233.66205071297 L -233525.05391683665 -471233.66205071297 L -232477.85636564041 -471233.66205071297 L -231430.6588144436 -471233.66205071297 L -230383.46126324736 -471233.66205071297 L -229336.26371205054 -471233.66205071297 L -228289.0661608542 -471233.66205071297 L -227241.8686096574 -471233.66205071297 L -226194.67105846116 -471233.66205071297 L -225147.47350726434 -471233.66205071297 L -224100.2759560681 -471233.66205071297 L -223053.07840487125 -471233.66205071297 L -222005.88085367504 -471233.66205071297 L -220958.6833024782 -471233.66205071297 L -219911.48575128193 -471233.66205071297 L -218864.2882000851 -471233.66205071297 L -217817.09064888887 -471233.66205071297 L -216769.89309769202 -471233.66205071297 L -215722.69554649582 -471233.66205071297 L -214675.49799529897 -471233.66205071297 L -213628.30044410273 -471233.66205071297 L -212581.10289290588 -471233.66205071297 L -211533.90534170964 -471233.66205071297 L -210486.7077905128 -471233.66205071297 L -209439.5102393166 -471233.66205071297 L -208392.31268811974 -471233.66205071297 L -207345.1151369235 -471233.66205071297 L -206297.91758572665 -471233.66205071297 L -205250.72003453042 -471233.66205071297 L -204203.52248333357 -471233.66205071297 L -203156.32493213736 -471233.66205071297 L -202109.1273809405 -471233.66205071297 L -201061.92982974424 -471233.66205071297 L -200014.73227854745 -471233.66205071297 L -198967.5347273512 -471233.66205071297 L -197920.33717615434 -471233.66205071297 L -196873.13962495807 -471233.66205071297 L -195825.94207376128 -471233.66205071297 L -194778.74452256502 -471233.66205071297 L -193731.5469713682 -471233.66205071297 L -192684.34942017196 -471233.66205071297 L -191637.1518689751 -471233.66205071297 L -190589.95431777887 -471233.66205071297 L -189542.75676658202 -471233.66205071297 L -188495.55921538582 -471233.66205071297 L -187448.36166418897 -471233.66205071297 L -186401.16411299273 -471233.66205071297 L -185353.96656179588 -471233.66205071297 L -184306.76901059964 -471233.66205071297 L -183259.57145940282 -471233.66205071297 L -182212.37390820656 -471233.66205071297 L -181165.17635700974 -471233.66205071297 L -180117.9788058135 -471233.66205071297 L -179070.78125461665 -471233.66205071297 L -178023.58370342042 -471233.66205071297 L -176976.38615222357 -471233.66205071297 L -175929.18860102736 -471233.66205071297 L -174881.9910498305 -471233.66205071297 L -173834.79349863427 -471233.66205071297 L -172787.59594743742 -471233.66205071297 L -171740.3983962412 -471233.66205071297 L -170693.20084504437 -471233.66205071297 L -169646.0032938481 -471233.66205071297 L -168598.8057426513 -471233.66205071297 L -167551.60819145505 -471233.66205071297 L -166504.4106402582 -471233.66205071297 L -165457.21308906193 -471233.66205071297 L -164410.01553786514 -471233.66205071297 L -163362.81798666887 -471233.66205071297 L -162315.62043547205 -471233.66205071297 L -161268.42288427582 -471233.66205071297 L -160221.22533307897 -471233.66205071297 L -159174.02778188273 -471233.66205071297 L -158126.83023068588 -471233.66205071297 L -157079.63267948964 -471233.66205071297 L -156032.43512829283 -471233.66205071297 L -154985.2375770966 -471233.66205071297 L -153938.04002589974 -471233.66205071297 L -152890.8424747035 -471233.66205071297 L -151843.64492350668 -471233.66205071297 L -150796.44737231042 -471233.66205071297 L -149749.2498211136 -471233.66205071297 L -148702.05226991736 -471233.66205071297 L -147654.8547187205 -471233.66205071297 L -146607.65716752427 -471233.66205071297 L -145560.45961632743 -471233.66205071297 L -144513.26206513122 -471233.66205071297 L -143466.06451393437 -471233.66205071297 L -142418.86696273813 -471233.66205071297 L -141371.66941154128 -471233.66205071297 L -140324.47186034505 -471233.66205071297 L -139277.2743091482 -471233.66205071297 L -138230.07675795196 -471233.66205071297 L -137182.87920675514 -471233.66205071297 L -136135.6816555589 -471233.66205071297 L -135088.48410436205 -471233.66205071297 L -134041.28655316582 -471233.66205071297 L -132994.08900196897 -471233.66205071297 L -131946.89145077276 -471233.66205071297 L -130899.6938995759 -471233.66205071297 L -129852.49634837965 -471233.66205071297 L -128805.29879718283 -471233.66205071297 L -127758.10124598659 -471233.66205071297 L -126710.90369478975 -471233.66205071297 L -125663.7061435935 -471233.66205071297 L -124616.50859239668 -471233.66205071297 L -123569.31104120043 -471233.66205071297 L -122522.1134900036 -471233.66205071297 L -121474.91593880736 -471233.66205071297 L -120427.71838761054 -471233.66205071297 L -119380.52083641429 -471233.66205071297 L -118333.32328521744 -471233.66205071297 L -117286.12573402122 -471233.66205071297 L -116238.92818282437 -471233.66205071297 L -115191.73063162813 -471233.66205071297 L -114144.5330804313 -471233.66205071297 L -113097.33552923506 -471233.66205071297 L -112050.13797803823 -471233.66205071297 L -111002.94042684197 -471233.66205071297 L -109955.74287564513 -471233.66205071297 L -108908.54532444892 -471233.66205071297 L -107861.34777325207 -471233.66205071297 L -106814.15022205582 -471233.66205071297 L -105766.952670859 -471233.66205071297 L -104719.75511966275 -471233.66205071297 L -103672.55756846591 -471233.66205071297 L -102625.36001726966 -471233.66205071297 L -101578.16246607284 -471233.66205071297 L -100530.96491487659 -471233.66205071297 L -99483.76736367976 -471233.66205071297 L -98436.5698124835 -471233.66205071297 L -97389.37226128668 -471233.66205071297 L -96342.17471009043 -471233.66205071297 L -95294.97715889361 -471233.66205071297 L -94247.77960769738 -471233.66205071297 L -93200.58205650053 -471233.66205071297 L -92153.38450530429 -471233.66205071297 L -91106.18695410746 -471233.66205071297 L -90058.9894029112 -471233.66205071297 L -89011.79185171438 -471233.66205071297 L -87964.59430051815 -471233.66205071297 L -86917.3967493213 -471233.66205071297 L -85870.19919812506 -471233.66205071297 L -84823.00164692821 -471233.66205071297 L -83775.80409573198 -471233.66205071297 L -82728.60654453516 -471233.66205071297 L -81681.4089933389 -471233.66205071297 L -80634.21144214207 -471233.66205071297 L -79587.01389094583 -471233.66205071297 L -78539.81633974898 -471233.66205071297 L -77492.61878855275 -471233.66205071297 L -76445.42123735593 -471233.66205071297 L -75398.22368615968 -471233.66205071297 L -74351.02613496284 -471233.66205071297 L -73303.8285837666 -471233.66205071297 L -72256.63103256977 -471233.66205071297 L -71209.43348137352 -471233.66205071297 L -70162.23593017668 -471233.66205071297 L -69115.03837898045 -471233.66205071297 L -68067.84082778361 -471233.66205071297 L -67020.64327658738 -471233.66205071297 L -65973.44572539054 -471233.66205071297 L -64926.2481741943 -471233.66205071297 L -63879.05062299746 -471233.66205071297 L -62831.85307180121 -471233.66205071297 L -61784.65552060439 -471233.66205071297 L -60737.45796940814 -471233.66205071297 L -59690.26041821131 -471233.66205071297 L -58643.06286701506 -471233.66205071297 L -57595.865315818235 -471233.66205071297 L -56548.66776462199 -471233.66205071297 L -55501.47021342515 -471233.66205071297 L -54454.27266222892 -471233.66205071297 L -53407.07511103208 -471233.66205071297 L -52359.87755983584 -471233.66205071297 L -51312.68000863901 -471233.66205071297 L -50265.482457442755 -471233.66205071297 L -49218.28490624592 -471233.66205071297 L -48171.08735504969 -471233.66205071297 L -47123.88980385285 -471233.66205071297 L -46076.69225265661 -471233.66205071297 L -45029.49470145977 -471233.66205071297 L -43982.297150263534 -471233.66205071297 L -42935.0995990667 -471233.66205071297 L -41887.902047870455 -471233.66205071297 L -40840.70449667362 -471233.66205071297 L -39793.506945477384 -471233.66205071297 L -38746.30939428055 -471233.66205071297 L -37699.111843084305 -471233.66205071297 L -36651.91429188747 -471233.66205071297 L -35604.71674069123 -471233.66205071297 L -34557.51918949439 -471233.66205071297 L -33510.32163829815 -471233.66205071297 L -32463.124087101314 -471233.66205071297 L -31415.926535905073 -471233.66205071297 L -30368.72898470824 -471233.66205071297 L -29321.531433511995 -471233.66205071297 L -28274.33388231516 -471233.66205071297 L -27227.136331118923 -471233.66205071297 L -26179.938779922086 -471233.66205071297 L -25132.741228725845 -471233.66205071297 L -24085.543677529007 -471233.66205071297 L -23038.346126332774 -471233.66205071297 L -21991.148575135932 -471233.66205071297 L -20943.951023939695 -471233.66205071297 L -19896.753472742854 -471233.66205071297 L -18849.555921546616 -471233.66205071297 L -17802.358370349782 -471233.66205071297 L -16755.160819153538 -471233.66205071297 L -15707.963267956704 -471233.66205071297 L -14660.765716760461 -471233.66205071297 L -13613.568165563627 -471233.66205071297 L -12566.370614367386 -471233.66205071297 L -11519.17306317055 -471233.66205071297 L -10471.97551197431 -471233.66205071297 L -9424.777960777476 -471233.66205071297 L -8377.580409581235 -471233.66205071297 L -7330.382858384398 -471233.66205071297 L -6283.185307188158 -471233.66205071297 L -5235.987755991321 -471233.66205071297 L -4188.790204795081 -471233.66205071297 L -3141.592653598246 -471233.66205071297 L -2094.3951024020053 -471233.66205071297 L -1047.1975512051695 -471233.66205071297 L -8.928943354902097e-9 -471233.66205071297 L 1047.1975511879068 -471233.66205071297 L 2094.3951023841473 -471233.66205071297 L 3141.592653580983 -471233.66205071297 L 4188.790204777224 -471233.66205071297 L 5235.987755974059 -471233.66205071297 L 6283.185307170301 -471233.66205071297 L 7330.382858367136 -471233.66205071297 L 8377.580409563376 -471233.66205071297 L 9424.777960760213 -471233.66205071297 L 10471.975511956454 -471233.66205071297 L 11519.173063153288 -471233.66205071297 L 12566.37061434953 -471233.66205071297 L 13613.568165546363 -471233.66205071297 L 14660.765716742606 -471233.66205071297 L 15707.963267939442 -471233.66205071297 L 16755.16081913568 -471233.66205071297 L 17802.35837033252 -471233.66205071297 L 18849.555921528758 -471233.66205071297 L 19896.753472725595 -471233.66205071297 L 20943.951023921833 -471233.66205071297 L 21991.14857511867 -471233.66205071297 L 23038.34612631491 -471233.66205071297 L 24085.54367751175 -471233.66205071297 L 25132.74122870799 -471233.66205071297 L 26179.938779904824 -471233.66205071297 L 27227.13633110107 -471233.66205071297 L 28274.3338822979 -471233.66205071297 L 29321.531433494143 -471233.66205071297 L 30368.728984690977 -471233.66205071297 L 31415.926535887214 -471233.66205071297 L 32463.124087084056 -471233.66205071297 L 33510.32163828029 -471233.66205071297 L 34557.519189477134 -471233.66205071297 L 35604.71674067337 -471233.66205071297 L 36651.9142918702 -471233.66205071297 L 37699.11184306644 -471233.66205071297 L 38746.30939426328 -471233.66205071297 L 39793.50694545952 -471233.66205071297 L 40840.70449665636 -471233.66205071297 L 41887.9020478526 -471233.66205071297 L 42935.099599049434 -471233.66205071297 L 43982.29715024568 -471233.66205071297 L 45029.494701442505 -471233.66205071297 L 46076.69225263876 -471233.66205071297 L 47123.88980383559 -471233.66205071297 L 48171.08735503183 -471233.66205071297 L 49218.28490622866 -471233.66205071297 L 50265.48245742491 -471233.66205071297 L 51312.68000862174 -471233.66205071297 L 52359.87755981798 -471233.66205071297 L 53407.07511101481 -471233.66205071297 L 54454.27266221106 -471233.66205071297 L 55501.47021340789 -471233.66205071297 L 56548.66776460414 -471233.66205071297 L 57595.86531580096 -471233.66205071297 L 58643.062866997214 -471233.66205071297 L 59690.26041819405 -471233.66205071297 L 60737.45796939028 -471233.66205071297 L 61784.65552058712 -471233.66205071297 L 62831.85307178336 -471233.66205071297 L 63879.05062298019 -471233.66205071297 L 64926.248174176435 -471233.66205071297 L 65973.44572537327 -471233.66205071297 L 67020.6432765695 -471233.66205071297 L 68067.84082776635 -471233.66205071297 L 69115.03837896259 -471233.66205071297 L 70162.23593015943 -471233.66205071297 L 71209.43348135566 -471233.66205071297 L 72256.6310325525 -471233.66205071297 L 73303.82858374875 -471233.66205071297 L 74351.02613494558 -471233.66205071297 L 75398.22368614182 -471233.66205071297 L 76445.42123733865 -471233.66205071297 L 77492.6187885349 -471233.66205071297 L 78539.81633973173 -471233.66205071297 L 79587.01389092796 -471233.66205071297 L 80634.21144212481 -471233.66205071297 L 81681.40899332105 -471233.66205071297 L 82728.6065445179 -471233.66205071297 L 83775.80409571413 -471233.66205071297 L 84823.00164691097 -471233.66205071297 L 85870.1991981072 -471233.66205071297 L 86917.39674930403 -471233.66205071297 L 87964.59430050028 -471233.66205071297 L 89011.79185169711 -471233.66205071297 L 90058.98940289336 -471233.66205071297 L 91106.1869540902 -471233.66205071297 L 92153.38450528643 -471233.66205071297 L 93200.58205648325 -471233.66205071297 L 94247.7796076795 -471233.66205071297 L 95294.97715887634 -471233.66205071297 L 96342.17471007259 -471233.66205071297 L 97389.37226126943 -471233.66205071297 L 98436.56981246566 -471233.66205071297 L 99483.7673636625 -471233.66205071297 L 100530.96491485873 -471233.66205071297 L 101578.16246605557 -471233.66205071297 L 102625.36001725182 -471233.66205071297 L 103672.55756844865 -471233.66205071297 L 104719.75511964488 -471233.66205071297 L 105766.95267084173 -471233.66205071297 L 106814.15022203796 -471233.66205071297 L 107861.3477732348 -471233.66205071297 L 108908.54532443105 -471233.66205071297 L 109955.74287562785 -471233.66205071297 L 111002.9404268241 -471233.66205071297 L 112050.13797802095 -471233.66205071297 L 113097.3355292172 -471233.66205071297 L 114144.53308041402 -471233.66205071297 L 115191.73063161028 -471233.66205071297 L 116238.92818280711 -471233.66205071297 L 117286.12573400335 -471233.66205071297 L 118333.32328520017 -471233.66205071297 L 119380.52083639642 -471233.66205071297 L 120427.71838759327 -471233.66205071297 L 121474.91593878949 -471233.66205071297 L 122522.11348998634 -471233.66205071297 L 123569.31104118258 -471233.66205071297 L 124616.50859237941 -471233.66205071297 L 125663.70614357565 -471233.66205071297 L 126710.90369477248 -471233.66205071297 L 127758.10124596873 -471233.66205071297 L 128805.29879716558 -471233.66205071297 L 129852.49634836179 -471233.66205071297 L 130899.69389955864 -471233.66205071297 L 131946.8914507549 -471233.66205071297 L 132994.08900195174 -471233.66205071297 L 134041.28655314795 -471233.66205071297 L 135088.4841043448 -471233.66205071297 L 136135.68165554103 -471233.66205071297 L 137182.87920673788 -471233.66205071297 L 138230.07675793412 -471233.66205071297 L 139277.27430913094 -471233.66205071297 L 140324.47186032718 -471233.66205071297 L 141371.66941152402 -471233.66205071297 L 142418.86696272026 -471233.66205071297 L 143466.0645139171 -471233.66205071297 L 144513.26206511335 -471233.66205071297 L 145560.45961631017 -471233.66205071297 L 146607.6571675064 -471233.66205071297 L 147654.85471870325 -471233.66205071297 L 148702.0522698995 -471233.66205071297 L 149749.2498210963 -471233.66205071297 L 150796.44737229258 -471233.66205071297 L 151843.6449234894 -471233.66205071297 L 152890.84247468566 -471233.66205071297 L 153938.04002588245 -471233.66205071297 L 154985.23757707872 -471233.66205071297 L 156032.43512827557 -471233.66205071297 L 157079.63267947183 -471233.66205071297 L 158126.83023066862 -471233.66205071297 L 159174.0277818649 -471233.66205071297 L 160221.2253330617 -471233.66205071297 L 161268.42288425795 -471233.66205071297 L 162315.6204354548 -471233.66205071297 L 163362.81798665103 -471233.66205071297 L 164410.01553784785 -471233.66205071297 L 165457.2130890441 -471233.66205071297 L 166504.4106402409 -471233.66205071297 L 167551.60819143718 -471233.66205071297 L 168598.80574263402 -471233.66205071297 L 169646.00329383026 -471233.66205071297 L 170693.20084502708 -471233.66205071297 L 171740.39839622335 -471233.66205071297 L 172787.59594742017 -471233.66205071297 L 173834.7934986164 -471233.66205071297 L 174881.99104981325 -471233.66205071297 L 175929.1886010095 -471233.66205071297 L 176976.38615220634 -471233.66205071297 L 178023.58370340255 -471233.66205071297 L 179070.78125459942 -471233.66205071297 L 180117.97880579563 -471233.66205071297 L 181165.17635699248 -471233.66205071297 L 182212.37390818872 -471233.66205071297 L 183259.57145938554 -471233.66205071297 L 184306.7690105818 -471233.66205071297 L 185353.9665617786 -471233.66205071297 L 186401.16411297486 -471233.66205071297 L 187448.3616641717 -471233.66205071297 L 188495.55921536795 -471233.66205071297 L 189542.75676656477 -471233.66205071297 L 190589.954317761 -471233.66205071297 L 191637.15186895788 -471233.66205071297 L 192684.3494201541 -471233.66205071297 L 193731.54697135094 -471233.66205071297 L 194778.74452254717 -471233.66205071297 L 195825.942073744 -471233.66205071297 L 196873.13962494026 -471233.66205071297 L 197920.33717613705 -471233.66205071297 L 198967.53472733332 -471233.66205071297 L 200014.73227853017 -471233.66205071297 L 201061.9298297264 -471233.66205071297 L 202109.12738092322 -471233.66205071297 L 203156.3249321195 -471233.66205071297 L 204203.52248331634 -471233.66205071297 L 205250.72003451255 -471233.66205071297 L 206297.9175857094 -471233.66205071297 L 207345.11513690563 -471233.66205071297 L 208392.31268810248 -471233.66205071297 L 209439.5102392987 -471233.66205071297 L 210486.70779049557 -471233.66205071297 L 211533.90534169177 -471233.66205071297 L 212581.10289288862 -471233.66205071297 L 213628.3004440849 -471233.66205071297 L 214675.4979952817 -471233.66205071297 L 215722.69554647795 -471233.66205071297 L 216769.8930976748 -471233.66205071297 L 217817.090648871 -471233.66205071297 L 218864.28820006785 -471233.66205071297 L 219911.4857512641 -471233.66205071297 L 220958.6833024609 -471233.66205071297 L 222005.88085365717 -471233.66205071297 L 223053.07840485396 -471233.66205071297 L 224100.27595605023 -471233.66205071297 L 225147.47350724708 -471233.66205071297 L 226194.67105844332 -471233.66205071297 L 227241.86860964014 -471233.66205071297 L 228289.06616083637 -471233.66205071297 L 229336.2637120332 -471233.66205071297 L 230383.46126322952 -471233.66205071297 L 231430.65881442628 -471233.66205071297 L 232477.85636562257 -471233.66205071297 L 233525.0539168194 -471233.66205071297 L 234572.25146801563 -471233.66205071297 L 235619.44901921248 -471233.66205071297 L 236666.6465704087 -471233.66205071297 L 237713.84412160554 -471233.66205071297 L 238761.04167280177 -471233.66205071297 L 239808.2392239986 -471233.66205071297 L 240855.43677519486 -471233.66205071297 L 241902.6343263917 -471233.66205071297 L 242949.83187758792 -471233.66205071297 L 243997.02942878476 -471233.66205071297 L 245044.226979981 -471233.66205071297 L 246091.42453117782 -471233.66205071297 L 247138.62208237406 -471233.66205071297 L 248185.81963357088 -471233.66205071297 L 249233.01718476714 -471233.66205071297 L 250280.21473596402 -471233.66205071297 L 251327.41228716023 -471233.66205071297 L 252374.60983835708 -471233.66205071297 L 253421.8073895533 -471233.66205071297 L 254469.00494075016 -471233.66205071297 L 255516.20249194634 -471233.66205071297 L 256563.40004314322 -471233.66205071297 L 257610.5975943395 -471233.66205071297 L 258657.7951455363 -471233.66205071297 L 259704.99269673254 -471233.66205071297 L 260752.1902479294 -471233.66205071297 L 261799.3877991256 -471233.66205071297 L 262846.5853503224 -471233.66205071297 L 263893.7829015187 -471233.66205071297 L 264940.98045271554 -471233.66205071297 L 265988.1780039118 -471233.66205071297 L 267035.3755551086 -471233.66205071297 L 268082.57310630486 -471233.66205071297 L 269129.7706575017 -471233.66205071297 L 270176.9682086979 -471233.66205071297 L 271224.16575989476 -471233.66205071297 L 272271.363311091 -471233.66205071297 L 273318.5608622878 -471233.66205071297 L 274365.7584134841 -471233.66205071297 L 275412.9559646809 -471233.66205071297 L 276460.15351587714 -471233.66205071297 L 277507.351067074 -471233.66205071297 L 278554.54861827026 -471233.66205071297 L 279601.74616946705 -471233.66205071297 L 280648.9437206633 -471233.66205071297 L 281696.1412718601 -471233.66205071297 L 282743.3388230564 -471233.66205071297 L 283790.5363742532 -471233.66205071297 L 284837.7339254495 -471233.66205071297 L 285884.9314766463 -471233.66205071297 L 286932.12902784254 -471233.66205071297 L 287979.32657903933 -471233.66205071297 L 289026.5241302356 -471233.66205071297 L 290073.72168143245 -471233.66205071297 L 291120.91923262866 -471233.66205071297 L 292168.1167838255 -471233.66205071297 L 293215.3143350218 -471233.66205071297 L 294262.5118862186 -471233.66205071297 L 295309.70943741483 -471233.66205071297 L 296356.9069886117 -471233.66205071297 L 297404.10453980794 -471233.66205071297 L 298451.30209100473 -471233.66205071297 L 299498.499642201 -471233.66205071297 L 300545.6971933978 -471233.66205071297 L 301592.89474459406 -471233.66205071297 L 302640.09229579085 -471233.66205071297 L 303687.2898469871 -471233.66205071297 L 304734.48739818396 -471233.66205071297 L 305781.6849493802 -471233.66205071297 L 306828.8825005771 -471233.66205071297 L 307876.0800517732 -471233.66205071297 L 308923.27760297013 -471233.66205071297 L 309970.4751541664 -471233.66205071297 L 311017.6727053632 -471233.66205071297 L 312064.87025655946 -471233.66205071297 L 313112.0678077563 -471233.66205071297 L 314159.2653589525 -471233.66205071297 L 315206.46291014936 -471233.66205071297 L 316253.6604613456 -471233.66205071297 L 317300.8580125424 -471233.66205071297 L 318348.0555637386 -471233.66205071297 L 319395.25311493553 -471233.66205071297 L 320442.4506661318 -471233.66205071297 L 321489.64821732865 -471233.66205071297 L 322536.84576852486 -471233.66205071297 L 323584.0433197217 -471233.66205071297 L 324631.2408709179 -471233.66205071297 L 325678.43842211476 -471233.66205071297 L 326725.635973311 -471233.66205071297 L 327772.8335245078 -471233.66205071297 L 328820.0310757041 -471233.66205071297 L 329867.2286269009 -471233.66205071297 L 330914.42617809714 -471233.66205071297 L 331961.623729294 -471233.66205071297 L 333008.82128049026 -471233.66205071297 L 334056.01883168705 -471233.66205071297 L 335103.2163828833 -471233.66205071297 L 336150.4139340801 -471233.66205071297 L 337197.6114852764 -471233.66205071297 L 338244.8090364732 -471233.66205071297 L 339292.0065876694 -471233.66205071297 L 340339.2041388663 -471233.66205071297 L 341386.4016900625 -471233.66205071297 L 342433.59924125933 -471233.66205071297 L 343480.79679245554 -471233.66205071297 L 344527.99434365245 -471233.66205071297 L 345575.1918948487 -471233.66205071297 L 346622.3894460455 -471233.66205071297 L 347669.5869972418 -471233.66205071297 L 348716.7845484386 -471233.66205071297 L 349763.9820996348 -471233.66205071297 L 350811.1796508317 -471233.66205071297 L 351858.3772020279 -471233.66205071297 L 352905.57475322473 -471233.66205071297 L 353952.772304421 -471233.66205071297 L 354999.9698556178 -471233.66205071297 L 356047.16740681406 -471233.66205071297 L 357094.3649580109 -471233.66205071297 L 358141.5625092072 -471233.66205071297 L 359188.76006040396 -471233.66205071297 L 360235.9576116002 -471233.66205071297 L 361283.155162797 -471233.66205071297 L 362330.3527139933 -471233.66205071297 L 363377.5502651901 -471233.66205071297 L 364424.74781638634 -471233.66205071297 L 365471.9453675832 -471233.66205071297 L 366519.1429187794 -471233.66205071297 L 367566.34046997625 -471233.66205071297 L 368613.53802117246 -471233.66205071297 L 369660.73557236936 -471233.66205071297 L 370707.9331235655 -471233.66205071297 L 371755.1306747624 -471233.66205071297 L 372802.3282259587 -471233.66205071297 L 373849.52577715553 -471233.66205071297 L 374896.72332835174 -471233.66205071297 L 375943.9208795486 -471233.66205071297 L 376991.1184307448 -471233.66205071297 L 378038.31598194165 -471233.66205071297 L 379085.51353313786 -471233.66205071297 L 380132.7110843347 -471233.66205071297 L 381179.90863553097 -471233.66205071297 L 382227.1061867278 -471233.66205071297 L 383274.3037379241 -471233.66205071297 L 384321.50128912093 -471233.66205071297 L 385368.69884031714 -471233.66205071297 L 386415.896391514 -471233.66205071297 L 387463.0939427102 -471233.66205071297 L 388510.29149390705 -471233.66205071297 L 389557.4890451033 -471233.66205071297 L 390604.6865963001 -471233.66205071297 L 391651.88414749637 -471233.66205071297 L 392699.08169869316 -471233.66205071297 L 393746.2792498894 -471233.66205071297 L 394793.4768010863 -471233.66205071297 L 395840.67435228254 -471233.66205071297 L 396887.87190347933 -471233.66205071297 L 397935.0694546756 -471233.66205071297 L 398982.2670058724 -471233.66205071297 L 400029.464557069 -471233.66205071297 L 401076.6621082655 -471233.66205071297 L 402123.85965946206 -471233.66205071297 L 403171.05721065856 -471233.66205071297 L 404218.2547618551 -471233.66205071297 L 405265.4523130516 -471233.66205071297 L 406312.6498642482 -471233.66205071297 L 407359.84741544473 -471233.66205071297 L 408407.04496664123 -471233.66205071297 L 409454.24251783785 -471233.66205071297 L 410501.4400690343 -471233.66205071297 L 411548.6376202309 -471233.66205071297 L 412595.83517142734 -471233.66205071297 L 413643.03272262396 -471233.66205071297 L 414690.2302738205 -471233.66205071297 L 415737.427825017 -471233.66205071297 L 416784.6253762136 -471233.66205071297 L 417831.8229274101 -471233.66205071297 L 418879.02047860663 -471233.66205071297 L 419926.2180298032 -471233.66205071297 L 420973.4155809997 -471233.66205071297 L 422020.61313219625 -471233.66205071297 L 423067.8106833928 -471233.66205071297 L 424115.0082345893 -471233.66205071297 L 425162.2057857859 -471233.66205071297 L 426209.40333698236 -471233.66205071297 L 427256.600888179 -471233.66205071297 L 428303.7984393755 -471233.66205071297 L 429350.99599057203 -471233.66205071297 L 430398.1935417685 -471233.66205071297 L 431445.3910929651 -471233.66205071297 L 432492.58864416165 -471233.66205071297 L 433539.78619535815 -471233.66205071297 L 434586.98374655476 -471233.66205071297 L 435634.18129775126 -471233.66205071297 L 436681.37884894776 -471233.66205071297 L 437728.57640014426 -471233.66205071297 L 438775.7739513409 -471233.66205071297 L 439822.97150253743 -471233.66205071297 L 440870.16905373393 -471233.66205071297 L 441917.36660493043 -471233.66205071297 L 442964.564156127 -471233.66205071297 L 444011.76170732355 -471233.66205071297 L 445058.9592585201 -471233.66205071297 L 446106.15680971666 -471233.66205071297 L 447153.35436091316 -471233.66205071297 L 448200.55191210966 -471233.66205071297 L 449247.7494633062 -471233.66205071297 L 450294.94701450283 -471233.66205071297 L 451342.14456569933 -471233.66205071297 L 452389.34211689583 -471233.66205071297 L 453436.53966809233 -471233.66205071297 L 454483.73721928895 -471233.66205071297 L 455530.9347704855 -471233.66205071297 L 456578.13232168206 -471233.66205071297 L 457625.3298728786 -471233.66205071297 L 458672.52742407506 -471233.66205071297 L 459719.7249752716 -471233.66205071297 L 460766.92252646823 -471233.66205071297 L 461814.12007766473 -471233.66205071297 L 462861.3176288613 -471233.66205071297 L 463908.51518005773 -471233.66205071297 L 464955.71273125435 -471233.66205071297 L 466002.91028245084 -471233.66205071297 L 467050.1078336474 -471233.66205071297 L 468097.305384844 -471233.66205071297 L 469144.50293604046 -471233.66205071297 L 470191.700487237 -471233.66205071297 L 471238.8980384335 -471233.66205071297 L 472286.09558963013 -471233.66205071297 L 473333.2931408267 -471233.66205071297 L 474380.49069202313 -471233.66205071297 L 475427.6882432197 -471233.66205071297 L 476474.88579441624 -471233.66205071297 L 477522.0833456128 -471233.66205071297 L 478569.2808968093 -471233.66205071297 L 479616.4784480058 -471233.66205071297 L 480663.6759992024 -471233.66205071297 L 481710.8735503989 -471233.66205071297 L 482758.0711015955 -471233.66205071297 L 483805.26865279203 -471233.66205071297 L 484852.4662039886 -471233.66205071297 L 485899.663755185 -471233.66205071297 L 486946.8613063816 -471233.66205071297 L 487994.0588575782 -471233.66205071297 L 489041.2564087747 -471233.66205071297 L 490088.45395997126 -471233.66205071297 L 491135.6515111677 -471233.66205071297 L 492182.8490623643 -471233.66205071297 L 493230.0466135609 -471233.66205071297 L 494277.2441647574 -471233.66205071297 L 495324.441715954 -471233.66205071297 L 496371.6392671504 -471233.66205071297 L 497418.836818347 -471233.66205071297 L 498466.0343695435 -471233.66205071297 L 499513.2319207401 -471233.66205071297 L 500560.42947193666 -471233.66205071297 L 501607.6270231331 -471233.66205071297 L 502654.82457432966 -471233.66205071297 L 503702.0221255262 -471233.66205071297 L 504749.2196767228 -471233.66205071297 L 505796.41722791933 -471233.66205071297 L 506843.6147791159 -471233.66205071297 L 507890.8123303124 -471233.66205071297 L 508938.0098815089 -471233.66205071297 L 509985.20743270544 -471233.66205071297 L 511032.40498390206 -471233.66205071297 L 512079.60253509856 -471233.66205071297 L 513126.80008629506 -471233.66205071297 L 514173.99763749156 -471233.66205071297 L 515221.1951886882 -471233.66205071297 L 516268.3927398847 -471233.66205071297 L 517315.5902910813 -471233.66205071297 L 518362.78784227767 -471233.66205071297 L 519409.9853934743 -471233.66205071297 L 520457.18294467084 -471233.66205071297 L 521504.3804958674 -471233.66205071297 L 522551.57804706396 -471233.66205071297 L 523598.7755982604 -471233.66205071297 L 524645.9731494569 -471233.66205071297 L 525693.1707006536 -471233.66205071297 L 526740.3682518501 -471233.66205071297 L 527787.5658030466 -471233.66205071297 L 528834.7633542432 -471233.66205071297 L 529881.9609054397 -471233.66205071297 L 530929.1584566362 -471233.66205071297 L 531976.3560078328 -471233.66205071297 L 533023.5535590294 -471233.66205071297 L 534070.7511102259 -471233.66205071297 L 535117.9486614224 -471233.66205071297 L 536165.1462126189 -471233.66205071297 L 537212.3437638155 -471233.66205071297 L 538259.541315012 -471233.66205071297 L 539306.7388662086 -471233.66205071297 L 540353.936417405 -471233.66205071297 L 541401.1339686016 -471233.66205071297 L 542448.3315197981 -471233.66205071297 L 543495.5290709947 -471233.66205071297 L 544542.7266221913 -471233.66205071297 L 545589.9241733877 -471233.66205071297 L 546637.1217245843 -471233.66205071297 L 547684.3192757808 -471233.66205071297 L 548731.5168269774 -471233.66205071297 L 549778.7143781739 -471233.66205071297 L 550825.9119293705 -471233.66205071297 L 551873.1094805669 -471233.66205071297 L 552920.3070317635 -471233.66205071297 L 553967.50458296 -471233.66205071297 L 555014.7021341566 -471233.66205071297 L 556061.8996853532 -471233.66205071297 L 557109.0972365497 -471233.66205071297 L 558156.2947877462 -471233.66205071297 L 559203.4923389427 -471233.66205071297 L 560250.6898901394 -471233.66205071297 L 561297.8874413358 -471233.66205071297 L 562345.0849925324 -471233.66205071297 L 563392.2825437288 -471233.66205071297 L 564439.4800949255 -471233.66205071297 L 565486.6776461219 -471233.66205071297 L 566533.8751973185 -471233.66205071297 L 567581.0727485149 -471233.66205071297 L 568628.2702997116 -471233.66205071297 L 569675.4678509082 -471233.66205071297 L 570722.6654021046 -471233.66205071297 L 571769.8629533013 -471233.66205071297 L 572817.0605044978 -471233.66205071297 L 573864.2580556943 -471233.66205071297 L 574911.4556068908 -471233.66205071297 L 575958.6531580874 -471233.66205071297 L 577005.850709284 -471233.66205071297 L 578053.0482604805 -471233.66205071297 L 579100.245811677 -471233.66205071297 L 580147.4433628735 -471233.66205071297 L 581194.6409140701 -471233.66205071297 L 582241.8384652666 -471233.66205071297 L 583289.0360164632 -471233.66205071297 L 584336.2335676596 -471233.66205071297 L 585383.4311188562 -471233.66205071297 L 586430.6286700527 -471233.66205071297 L 587477.8262212493 -471233.66205071297 L 588525.0237724459 -471233.66205071297 L 589572.2213236423 -471233.66205071297 L 590619.4188748389 -471233.66205071297 L 591666.6164260354 -471233.66205071297 L 592713.813977232 -471233.66205071297 L 593761.0115284285 -471233.66205071297 L 594808.2090796251 -471233.66205071297 L 595855.4066308215 -471233.66205071297 L 596902.6041820181 -471233.66205071297 L 597949.8017332148 -471233.66205071297 L 598996.9992844112 -471233.66205071297 L 600044.1968356079 -471233.66205071297 L 601091.3943868042 -471233.66205071297 L 602138.5919380008 -471233.66205071297 L 603185.7894891973 -471233.66205071297 L 604232.987040394 -471233.66205071297 L 605280.1845915905 -471233.66205071297 L 606327.3821427869 -471233.66205071297 L 607374.5796939834 -471233.66205071297 L 608421.7772451801 -471233.66205071297 L 609468.9747963767 -471233.66205071297 L 610516.1723475732 -471233.66205071297 L 611563.3698987695 -471233.66205071297 L 612610.5674499662 -471233.66205071297 L 613657.7650011628 -471233.66205071297 L 614704.9625523593 -471233.66205071297 L 615752.1601035558 -471233.66205071297 L 616799.3576547523 -471233.66205071297 L 617846.5552059489 -471233.66205071297 L 618893.7527571454 -471233.66205071297 L 619940.950308342 -471233.66205071297 L 620988.1478595384 -471233.66205071297 L 622035.3454107351 -471233.66205071297 L 623082.5429619316 -471233.66205071297 L 624129.7405131281 -471233.66205071297 L 625176.9380643247 -471233.66205071297 L 626224.1356155212 -471233.66205071297 L 627271.3331667178 -471233.66205071297 L 628318.5307179142 -471233.66205071297 L 629365.7282691108 -471233.66205071297 L 630412.9258203075 -471233.66205071297 L 631460.1233715039 -471233.66205071297 L 632507.3209227005 -471233.66205071297 L 633554.5184738969 -471233.66205071297 L 634601.7160250936 -471233.66205071297 L 635648.9135762901 -471233.66205071297 L 636696.1111274866 -471233.66205071297 L 637743.3086786831 -471233.66205071297 L 638790.5062298797 -471233.66205071297 L 639837.7037810762 -471233.66205071297 L 640884.9013322727 -471233.66205071297 L 641932.0988834692 -471233.66205071297 L 642979.2964346658 -471233.66205071297 L 644026.4939858624 -471233.66205071297 L 645073.6915370589 -471233.66205071297 L 646120.8890882554 -471233.66205071297 L 647168.0866394519 -471233.66205071297 L 648215.2841906485 -471233.66205071297 L 649262.4817418451 -471233.66205071297 L 650309.6792930416 -471233.66205071297 L 651356.876844238 -471233.66205071297 L 652404.0743954346 -471233.66205071297 L 653451.2719466313 -471233.66205071297 L 654498.4694978278 -471233.66205071297 L 655545.6670490241 -471233.66205071297 L 656592.8646002207 -471233.66205071297 L 657640.0621514174 -471233.66205071297 L 658687.2597026139 -471233.66205071297 L 659734.4572538105 -471233.66205071297 L 660781.6548050068 -471233.66205071297 L 661828.8523562035 -471233.66205071297 L 662876.0499074 -471233.66205071297 L 663923.2474585966 -471233.66205071297 L 664970.4450097932 -471233.66205071297 L 666017.6425609896 -471233.66205071297 L 667064.8401121862 -471233.66205071297 L 668112.0376633827 -471233.66205071297 L 669159.2352145793 -471233.66205071297 L 670206.4327657758 -471233.66205071297 L 671253.6303169723 -471233.66205071297 L 672300.8278681688 -471233.66205071297 L 673348.0254193654 -471233.66205071297 L 674395.2229705619 -471233.66205071297 L 675442.4205217585 -471233.66205071297 L 676489.618072955 -471233.66205071297 L 677536.8156241515 -471233.66205071297 L 678584.013175348 -471233.66205071297 L 679631.2107265446 -471233.66205071297 L 680678.4082777413 -471233.66205071297 L 681725.6058289377 -471233.66205071297 L 682772.8033801342 -471233.66205071297 L 683820.0009313307 -471233.66205071297 L 684867.1984825274 -471233.66205071297 L 685914.396033724 -471233.66205071297 L 686961.5935849204 -471233.66205071297 L 688008.791136117 -471233.66205071297 L 689055.9886873135 -471233.66205071297 L 690103.1862385101 -471233.66205071297 L 691150.3837897066 -471233.66205071297 L 692197.5813409031 -471233.66205071297 L 693244.7788920996 -471233.66205071297 L 694291.9764432962 -471233.66205071297 L 695339.1739944927 -471233.66205071297 L 696386.3715456892 -471233.66205071297 L 697433.5690968857 -471233.66205071297 L 698480.7666480824 -471233.66205071297 L 699527.9641992789 -471233.66205071297 L 700575.1617504754 -471233.66205071297 L 701622.3593016719 -471233.66205071297 L 702669.5568528685 -471233.66205071297 L 703716.7544040651 -471233.66205071297 L 704763.9519552615 -471233.66205071297 L 705811.1495064581 -471233.66205071297 L 706858.3470576546 -471233.66205071297 L 707905.5446088512 -471233.66205071297 L 708952.7421600478 -471233.66205071297 L 709999.9397112443 -471233.66205071297 L 711047.1372624409 -471233.66205071297 L 712094.3348136373 -471233.66205071297 L 713141.5323648339 -471233.66205071297 L 714188.7299160304 -471233.66205071297 L 715235.927467227 -471233.66205071297 L 716283.1250184235 -471233.66205071297 L 717330.32256962 -471233.66205071297 L 718377.5201208165 -471233.66205071297 L 719424.7176720131 -471233.66205071297 L 720471.9152232097 -471233.66205071297 L 721519.1127744061 -471233.66205071297 L 722566.3103256027 -471233.66205071297 L 723613.5078767992 -471233.66205071297 L 724660.7054279958 -471233.66205071297 L 725707.9029791924 -471233.66205071297 L 726755.1005303888 -471233.66205071297 L 727802.2980815853 -471233.66205071297 L 728849.4956327819 -471233.66205071297 L 729896.6931839786 -471233.66205071297 L 730943.8907351751 -471233.66205071297 L 731991.0882863716 -471233.66205071297 L 733038.285837568 -471233.66205071297 L 734085.4833887647 -471233.66205071297 L 735132.6809399612 -471233.66205071297 L 736179.8784911578 -471233.66205071297 L 737227.0760423542 -471233.66205071297 L 738274.2735935508 -471233.66205071297 L 739321.4711447473 -471233.66205071297 L 740368.6686959439 -471233.66205071297 L 741415.8662471405 -471233.66205071297 L 742463.0637983369 -471233.66205071297 L 743510.2613495335 -471233.66205071297 L 744557.45890073 -471233.66205071297 L 745604.6564519266 -471233.66205071297 L 746651.854003123 -471233.66205071297 L 747699.0515543197 -471233.66205071297 L 748746.2491055161 -471233.66205071297 L 749793.4466567127 -471233.66205071297 L 750840.6442079092 -471233.66205071297 L 751887.8417591059 -471233.66205071297 L 752935.0393103024 -471233.66205071297 L 753982.2368614989 -471233.66205071297 L 755029.4344126954 -471233.66205071297 L 756076.631963892 -471233.66205071297 L 757123.8295150885 -471233.66205071297 L 758171.027066285 -471233.66205071297 L 759218.2246174816 -471233.66205071297 L 760265.4221686781 -471233.66205071297 L 761312.6197198747 -471233.66205071297 L 762359.8172710711 -471233.66205071297 L 763407.0148222677 -471233.66205071297 L 764454.2123734643 -471233.66205071297 L 765501.4099246608 -471233.66205071297 L 766548.6074758574 -471233.66205071297 L 767595.8050270538 -471233.66205071297 L 768643.0025782504 -471233.66205071297 L 769690.2001294469 -471233.66205071297 L 770737.3976806435 -471233.66205071297 L 771784.5952318399 -471233.66205071297 L 772831.7927830365 -471233.66205071297 L 773878.990334233 -471233.66205071297 L 774926.1878854297 -471233.66205071297 L 775973.3854366262 -471233.66205071297 L 777020.5829878226 -471233.66205071297 L 778067.7805390191 -471233.66205071297 L 779114.9780902158 -471233.66205071297 L 780162.1756414124 -471233.66205071297 L 781209.3731926089 -471233.66205071297 L 782256.5707438053 -471233.66205071297 L 783303.7682950019 -471233.66205071297 L 784350.9658461985 -471233.66205071297 L 785398.163397395 -471233.66205071297 L 786445.3609485916 -471233.66205071297 L 787492.558499788 -471233.66205071297 L 788539.7560509846 -471233.66205071297 L 789586.9536021812 -471233.66205071297 L 790634.1511533777 -471233.66205071297 L 791681.3487045743 -471233.66205071297 L 792728.5462557707 -471233.66205071297 L 793775.7438069673 -471233.66205071297 L 794822.9413581638 -471233.66205071297 L 795870.1389093604 -471233.66205071297 L 796917.3364605568 -471233.66205071297 L 797964.5340117532 -471233.66205071297 L 799011.73156295 -471233.66205071297 L 800058.9291141467 -471233.66205071297 L 801106.1266653431 -471233.66205071297 L 802153.3242165394 -471233.66205071297 L 803200.5217677362 -471233.66205071297 L 804247.7193189329 -471233.66205071297 L 805294.9168701292 -471233.66205071297 L 806342.1144213255 -471233.66205071297 L 807389.3119725223 -471233.66205071297 L 808436.5095237192 -471233.66205071297 L 809483.7070749153 -471233.66205071297 L 810530.9046261117 -471233.66205071297 L 811578.1021773085 -471233.66205071297 L 812625.2997285053 -471233.66205071297 L 813672.4972797015 -471233.66205071297 L 814719.6948308978 -471233.66205071297 L 815766.8923820946 -471233.66205071297 L 816814.0899332914 -471233.66205071297 L 817861.2874844876 -471233.66205071297 L 818908.485035684 -471233.66205071297 L 819955.6825868808 -471233.66205071297 L 821002.8801380775 -471233.66205071297 L 822050.0776892737 -471233.66205071297 L 823097.2752404701 -471233.66205071297 L 824144.472791667 -471233.66205071297 L 825191.6703428638 -471233.66205071297 L 826238.86789406 -471233.66205071297 L 827286.0654452562 -471233.66205071297 L 828333.2629964531 -471233.66205071297 L 829380.4605476499 -471233.66205071297 L 830427.6580988462 -471233.66205071297 L 831474.8556500423 -471233.66205071297 L 832522.0532012392 -471233.66205071297 L 833569.2507524361 -471233.66205071297 L 834616.4483036323 -471233.66205071297 L 835663.6458548284 -471233.66205071297 L 836710.8434060254 -471233.66205071297 L 837758.0409572222 -471233.66205071297 L 838805.2385084184 -471233.66205071297 L 839852.4360596148 -471233.66205071297 L 840899.6336108116 -471233.66205071297 L 841946.8311620085 -471233.66205071297 L 842994.0287132045 -471233.66205071297 L 844041.2262644009 -471233.66205071297 L 845088.4238155977 -471233.66205071297 L 846135.6213667946 -471233.66205071297 L 847182.8189179909 -471233.66205071297 L 848230.016469187 -471233.66205071297 L 849277.2140203838 -471233.66205071297 L 850324.4115715807 -471233.66205071297 L 851371.609122777 -471233.66205071297 L 852418.8066739731 -471233.66205071297 L 853466.00422517 -471233.66205071297 L 854513.2017763668 -471233.66205071297 L 855560.399327563 -471233.66205071297 L 856607.5968787593 -471233.66205071297 L 857654.794429956 -471233.66205071297 L 858701.991981153 -471233.66205071297 L 859749.1895323492 -471233.66205071297 L 860796.3870835453 -471233.66205071297 L 861843.5846347424 -471233.66205071297 L 862890.7821859391 -471233.66205071297 L 863937.9797371353 -471233.66205071297 L 864985.1772883317 -471233.66205071297 L 866032.3748395286 -471233.66205071297 L 867079.5723907253 -471233.66205071297 L 868126.7699419215 -471233.66205071297 L 869173.9674931178 -471233.66205071297 L 870221.1650443146 -471233.66205071297 L 871268.3625955115 -471233.66205071297 L 872315.5601467077 -471233.66205071297 L 873362.7576979039 -471233.66205071297 L 874409.9552491008 -471233.66205071297 L 875457.1528002975 -471233.66205071297 L 876504.3503514939 -471233.66205071297 L 877551.54790269 -471233.66205071297 L 878598.7454538868 -471233.66205071297 L 879645.9430050837 -471233.66205071297 L 880693.1405562799 -471233.66205071297 L 881740.3381074762 -471233.66205071297 L 882787.5356586732 -471233.66205071297 L 883834.7332098697 -471233.66205071297 L 884881.9307610661 -471233.66205071297 L 885929.1283122622 -471233.66205071297 L 886976.3258634593 -471233.66205071297 L 888023.523414656 -471233.66205071297 L 889070.7209658521 -471233.66205071297 L 890117.9185170486 -471233.66205071297 L 891165.1160682454 -471233.66205071297 L 892212.3136194423 -471233.66205071297 L 893259.5111706384 -471233.66205071297 L 894306.7087218346 -471233.66205071297 L 895353.9062730315 -471233.66205071297 L 896401.1038242283 -471233.66205071297 L 897448.3013754247 -471233.66205071297 L 898495.4989266208 -471233.66205071297 L 899542.6964778176 -471233.66205071297 L 900589.8940290145 -471233.66205071297 L 901637.0915802107 -471233.66205071297 L 902684.289131407 -471233.66205071297 L 903731.4866826037 -471233.66205071297 L 904778.6842338006 -471233.66205071297 L 905825.881784997 -471233.66205071297 L 906873.079336193 -471233.66205071297 L 907920.2768873901 -471233.66205071297 L 908967.4744385869 -471233.66205071297 L 910014.6719897831 -471233.66205071297 L 911061.8695409794 -471233.66205071297 L 912109.0670921761 -471233.66205071297 L 913156.264643373 -471233.66205071297 L 914203.4621945692 -471233.66205071297 L 915250.6597457654 -471233.66205071297 L 916297.8572969623 -471233.66205071297 L 917345.0548481591 -471233.66205071297 L 918392.2523993553 -471233.66205071297 L 919439.4499505516 -471233.66205071297 L 920486.6475017485 -471233.66205071297 L 921533.8450529452 -471233.66205071297 L 922581.0426041415 -471233.66205071297 L 923628.2401553377 -471233.66205071297 L 924675.4377065345 -471233.66205071297 L 925722.6352577314 -471233.66205071297 L 926769.8328089276 -471233.66205071297 L 927817.0303601238 -471233.66205071297 L 928864.2279113207 -471233.66205071297 L 929911.4254625174 -471233.66205071297 L 930958.6230137139 -471233.66205071297 L 932005.82056491 -471233.66205071297 L 933053.0181161067 -471233.66205071297 L 934100.2156673038 -471233.66205071297 L 935147.4132184999 -471233.66205071297 L 936194.6107696963 -471233.66205071297 L 937241.8083208931 -471233.66205071297 L 938289.00587209 -471233.66205071297 L 939336.2034232861 -471233.66205071297 L 940383.4009744823 -471233.66205071297 L 941430.5985256793 -471233.66205071297 L 942477.796076876 -471233.66205071297 L 942472.5600891819 -471233.66205071297 L 942472.5600891819 -470191.7004872723 L 942472.5600891819 -469144.5029360758 L 942472.5600891819 -468097.3053848791 L 942472.5600891819 -467050.10783368244 L 942472.5600891819 -466002.9102824859 L 942472.5600891819 -464955.7127312892 L 942472.5600891819 -463908.5151800927 L 942472.5600891819 -462861.31762889604 L 942472.5600891819 -461814.1200776995 L 942472.5600891819 -460766.92252650287 L 942472.5600891819 -459719.7249753062 L 942472.5600891819 -458672.52742410963 L 942472.5600891819 -457625.32987291296 L 942472.5600891819 -456578.13232171646 L 942472.5600891819 -455530.9347705198 L 942472.5600891819 -454483.7372193231 L 942472.5600891819 -453436.53966812656 L 942472.5600891819 -452389.34211692994 L 942472.5600891819 -451342.1445657334 L 942472.5600891819 -450294.9470145367 L 942472.5600891819 -449247.74946334003 L 942472.5600891819 -448200.55191214354 L 942472.5600891819 -447153.35436094686 L 942472.5600891819 -446106.1568097503 L 942472.5600891819 -445058.95925855363 L 942472.5600891819 -444011.761707357 L 942472.5600891819 -442964.56415616046 L 942472.5600891819 -441917.3666049638 L 942472.5600891819 -440870.1690537673 L 942472.5600891819 -439822.9715025706 L 942472.5600891819 -438775.77395137394 L 942472.5600891819 -437728.5764001774 L 942472.5600891819 -436681.3788489807 L 942472.5600891819 -435634.1812977842 L 942472.5600891819 -434586.98374658753 L 942472.5600891819 -433539.78619539086 L 942472.5600891819 -432492.58864419436 L 942472.5600891819 -431445.3910929977 L 942472.5600891819 -430398.1935418011 L 942472.5600891819 -429350.99599060445 L 942472.5600891819 -428303.7984394078 L 942472.5600891819 -427256.6008882113 L 942472.5600891819 -426209.40333701466 L 942472.5600891819 -425162.205785818 L 942472.5600891819 -424115.00823462143 L 942472.5600891819 -423067.8106834248 L 942472.5600891819 -422020.6131322282 L 942472.5600891819 -420973.4155810316 L 942472.5600891819 -419926.2180298349 L 942472.5600891819 -418879.02047863835 L 942472.5600891819 -417831.82292744174 L 942472.5600891819 -416784.6253762451 L 942472.5600891819 -415737.42782504857 L 942472.5600891819 -414690.2302738519 L 942472.5600891819 -413643.0327226553 L 942472.5600891819 -412595.83517145866 L 942472.5600891819 -411548.6376202621 L 942472.5600891819 -410501.44006906543 L 942472.5600891819 -409454.2425178688 L 942472.5600891819 -408407.0449666722 L 942472.5600891819 -407359.84741547564 L 942472.5600891819 -406312.649864279 L 942472.5600891819 -405265.45231308235 L 942472.5600891819 -404218.25476188574 L 942472.5600891819 -403171.0572106892 L 942472.5600891819 -402123.85965949256 L 942472.5600891819 -401076.6621082959 L 942472.5600891819 -400029.4645570993 L 942472.5600891819 -398982.2670059027 L 942472.5600891819 -397935.0694547061 L 942472.5600891819 -396887.8719035094 L 942472.5600891819 -395840.6743523128 L 942472.5600891819 -394793.47680111625 L 942472.5600891819 -393746.27924991964 L 942472.5600891819 -392699.081698723 L 942472.5600891819 -391651.88414752635 L 942472.5600891819 -390604.6865963298 L 942472.5600891819 -389557.4890451332 L 942472.5600891819 -388510.29149393656 L 942472.5600891819 -387463.09394273994 L 942472.5600891819 -386415.8963915433 L 942472.5600891819 -385368.6988403467 L 942472.5600891819 -384321.5012891501 L 942472.5600891819 -383274.3037379535 L 942472.5600891819 -382227.1061867569 L 942472.5600891819 -381179.90863556025 L 942472.5600891819 -380132.71108436363 L 942472.5600891819 -379085.513533167 L 942472.5600891819 -378038.31598197046 L 942472.5600891819 -376991.11843077384 L 942472.5600891819 -375943.9208795772 L 942472.5600891819 -374896.72332838055 L 942472.5600891819 -373849.525777184 L 942472.5600891819 -372802.3282259874 L 942472.5600891819 -371755.13067479077 L 942472.5600891819 -370707.9331235942 L 942472.5600891819 -369660.73557239753 L 942472.5600891819 -368613.5380212009 L 942472.5600891819 -367566.3404700043 L 942472.5600891819 -366519.14291880775 L 942472.5600891819 -365471.94536761113 L 942472.5600891819 -364424.74781641446 L 942472.5600891819 -363377.55026521784 L 942472.5600891819 -362330.3527140212 L 942472.5600891819 -361283.15516282467 L 942472.5600891819 -360235.95761162805 L 942472.5600891819 -359188.76006043144 L 942472.5600891819 -358141.56250923476 L 942472.5600891819 -357094.3649580382 L 942472.5600891819 -356047.1674068416 L 942472.5600891819 -354999.969855645 L 942472.5600891819 -353952.7723044484 L 942472.5600891819 -352905.57475325174 L 942472.5600891819 -351858.3772020551 L 942472.5600891819 -350811.1796508585 L 942472.5600891819 -349763.98209966195 L 942472.5600891819 -348716.78454846534 L 942472.5600891819 -347669.58699726866 L 942472.5600891819 -346622.38944607205 L 942472.5600891819 -345575.1918948755 L 942472.5600891819 -344527.9943436789 L 942472.5600891819 -343480.79679248226 L 942472.5600891819 -342433.5992412856 L 942472.5600891819 -341386.401690089 L 942472.5600891819 -340339.2041388924 L 942472.5600891819 -339292.0065876958 L 942472.5600891819 -338244.8090364992 L 942472.5600891819 -337197.6114853026 L 942472.5600891819 -336150.41393410595 L 942472.5600891819 -335103.21638290933 L 942472.5600891819 -334056.0188317127 L 942472.5600891819 -333008.82128051616 L 942472.5600891819 -331961.62372931954 L 942472.5600891819 -330914.42617812287 L 942472.5600891819 -329867.22862692625 L 942472.5600891819 -328820.0310757297 L 942472.5600891819 -327772.8335245331 L 942472.5600891819 -326725.6359733364 L 942472.5600891819 -325678.4384221398 L 942472.5600891819 -324631.24087094323 L 942472.5600891819 -323584.0433197466 L 942472.5600891819 -322536.84576855 L 942472.5600891819 -321489.64821735333 L 942472.5600891819 -320442.4506661568 L 942472.5600891819 -319395.25311496016 L 942472.5600891819 -318348.05556376354 L 942472.5600891819 -317300.85801256687 L 942472.5600891819 -316253.6604613703 L 942472.5600891819 -315206.4629101737 L 942472.5600891819 -314159.2653589771 L 942472.5600891819 -313112.0678077804 L 942472.5600891819 -312064.87025658385 L 942472.5600891819 -311017.67270538723 L 942472.5600891819 -309970.4751541906 L 942472.5600891819 -308923.277602994 L 942472.5600891819 -307876.0800517974 L 942472.5600891819 -306828.88250060077 L 942472.5600891819 -305781.68494940415 L 942472.5600891819 -304734.48739820754 L 942472.5600891819 -303687.2898470109 L 942472.5600891819 -302640.0922958143 L 942472.5600891819 -301592.8947446177 L 942472.5600891819 -300545.6971934211 L 942472.5600891819 -299498.4996422245 L 942472.5600891819 -298451.3020910279 L 942472.5600891819 -297404.1045398313 L 942472.5600891819 -296356.90698863467 L 942472.5600891819 -295309.70943743805 L 942472.5600891819 -294262.51188624144 L 942472.5600891819 -293215.3143350448 L 942472.5600891819 -292168.1167838482 L 942472.5600891819 -291120.9192326516 L 942472.5600891819 -290073.721681455 L 942472.5600891819 -289026.52413025836 L 942472.5600891819 -287979.3265790618 L 942472.5600891819 -286932.1290278651 L 942472.5600891819 -285884.9314766685 L 942472.5600891819 -284837.7339254719 L 942472.5600891819 -283790.53637427534 L 942472.5600891819 -282743.3388230787 L 942472.5600891819 -281696.1412718821 L 942472.5600891819 -280648.94372068543 L 942472.5600891819 -279601.7461694889 L 942472.5600891819 -278554.54861829226 L 942472.5600891819 -277507.35106709565 L 942472.5600891819 -276460.15351589903 L 942472.5600891819 -275412.9559647024 L 942472.5600891819 -274365.7584135058 L 942472.5600891819 -273318.5608623092 L 942472.5600891819 -272271.36331111257 L 942472.5600891819 -271224.165759916 L 942472.5600891819 -270176.96820871934 L 942472.5600891819 -269129.7706575227 L 942472.5600891819 -268082.5731063261 L 942472.5600891819 -267035.37555512955 L 942472.5600891819 -265988.17800393293 L 942472.5600891819 -264940.98045273626 L 942472.5600891819 -263893.78290153964 L 942472.5600891819 -262846.5853503431 L 942472.5600891819 -261799.38779914647 L 942472.5600891819 -260752.19024794985 L 942472.5600891819 -259704.99269675324 L 942472.5600891819 -258657.7951455566 L 942472.5600891819 -257610.59759436 L 942472.5600891819 -256563.4000431634 L 942472.5600891819 -255516.20249196677 L 942472.5600891819 -254469.00494077016 L 942472.5600891819 -253421.80738957354 L 942472.5600891819 -252374.60983837693 L 942472.5600891819 -251327.4122871803 L 942472.5600891819 -250280.2147359837 L 942472.5600891819 -249233.0171847871 L 942472.5600891819 -248185.81963359046 L 942472.5600891819 -247138.62208239388 L 942472.5600891819 -246091.42453119723 L 942472.5600891819 -245044.22698000065 L 942472.5600891819 -243997.02942880406 L 942472.5600891819 -242949.83187760744 L 942472.5600891819 -241902.63432641077 L 942472.5600891819 -240855.43677521418 L 942472.5600891819 -239808.23922401757 L 942472.5600891819 -238761.04167282098 L 942472.5600891819 -237713.8441216244 L 942472.5600891819 -236666.64657042772 L 942472.5600891819 -235619.4490192311 L 942472.5600891819 -234572.25146803452 L 942472.5600891819 -233525.05391683793 L 942472.5600891819 -232477.85636564132 L 942472.5600891819 -231430.65881444464 L 942472.5600891819 -230383.46126324806 L 942472.5600891819 -229336.26371205147 L 942472.5600891819 -228289.06616085485 L 942472.5600891819 -227241.86860965827 L 942472.5600891819 -226194.6710584616 L 942472.5600891819 -225147.473507265 L 942472.5600891819 -224100.2759560684 L 942472.5600891819 -223053.0784048718 L 942472.5600891819 -222005.8808536752 L 942472.5600891819 -220958.68330247857 L 942472.5600891819 -219911.48575128193 L 942472.5600891819 -218864.28820008534 L 942472.5600891819 -217817.09064888873 L 942472.5600891819 -216769.89309769214 L 942472.5600891819 -215722.6955464955 L 942472.5600891819 -214675.49799529888 L 942472.5600891819 -213628.30044410226 L 942472.5600891819 -212581.10289290568 L 942472.5600891819 -211533.90534170903 L 942472.5600891819 -210486.70779051245 L 942472.5600891819 -209439.5102393158 L 942472.5600891819 -208392.31268811921 L 942472.5600891819 -207345.11513692257 L 942472.5600891819 -206297.91758572598 L 942472.5600891819 -205250.72003452937 L 942472.5600891819 -204203.52248333275 L 942472.5600891819 -203156.32493213614 L 942472.5600891819 -202109.12738093952 L 942472.5600891819 -201061.9298297429 L 942472.5600891819 -200014.73227854632 L 942472.5600891819 -198967.53472734967 L 942472.5600891819 -197920.3371761531 L 942472.5600891819 -196873.13962495644 L 942472.5600891819 -195825.94207375986 L 942472.5600891819 -194778.74452256324 L 942472.5600891819 -193731.54697136662 L 942472.5600891819 -192684.34942017 L 942472.5600891819 -191637.1518689734 L 942472.5600891819 -190589.95431777678 L 942472.5600891819 -189542.7567665802 L 942472.5600891819 -188495.55921538355 L 942472.5600891819 -187448.36166418696 L 942472.5600891819 -186401.16411299037 L 942472.5600891819 -185353.96656179373 L 942472.5600891819 -184306.7690105971 L 942472.5600891819 -183259.5714594005 L 942472.5600891819 -182212.37390820388 L 942472.5600891819 -181165.1763570073 L 942472.5600891819 -180117.97880581065 L 942472.5600891819 -179070.78125461406 L 942472.5600891819 -178023.58370341748 L 942472.5600891819 -176976.38615222083 L 942472.5600891819 -175929.18860102425 L 942472.5600891819 -174881.9910498276 L 942472.5600891819 -173834.793498631 L 942472.5600891819 -172787.5959474344 L 942472.5600891819 -171740.39839623778 L 942472.5600891819 -170693.20084504117 L 942472.5600891819 -169646.00329384455 L 942472.5600891819 -168598.80574264794 L 942472.5600891819 -167551.60819145135 L 942472.5600891819 -166504.41064025473 L 942472.5600891819 -165457.21308905815 L 942472.5600891819 -164410.01553786153 L 942472.5600891819 -163362.81798666494 L 942472.5600891819 -162315.6204354684 L 942472.5600891819 -161268.42288427177 L 942472.5600891819 -160221.22533307518 L 942472.5600891819 -159174.02778187857 L 942472.5600891819 -158126.83023068198 L 942472.5600891819 -157079.63267948542 L 942472.5600891819 -156032.4351282888 L 942472.5600891819 -154985.2375770922 L 942472.5600891819 -153938.0400258956 L 942472.5600891819 -152890.84247469902 L 942472.5600891819 -151843.6449235024 L 942472.5600891819 -150796.44737230582 L 942472.5600891819 -149749.24982110923 L 942472.5600891819 -148702.05226991264 L 942472.5600891819 -147654.85471871603 L 942472.5600891819 -146607.65716751944 L 942472.5600891819 -145560.45961632286 L 942472.5600891819 -144513.26206512627 L 942472.5600891819 -143466.06451392968 L 942472.5600891819 -142418.86696273307 L 942472.5600891819 -141371.66941153648 L 942472.5600891819 -140324.4718603399 L 942472.5600891819 -139277.2743091433 L 942472.5600891819 -138230.07675794672 L 942472.5600891819 -137182.8792067501 L 942472.5600891819 -136135.68165555352 L 942472.5600891819 -135088.4841043569 L 942472.5600891819 -134041.28655316035 L 942472.5600891819 -132994.08900196373 L 942472.5600891819 -131946.89145076714 L 942472.5600891819 -130899.69389957056 L 942472.5600891819 -129852.49634837396 L 942472.5600891819 -128805.29879717737 L 942472.5600891819 -127758.10124598077 L 942472.5600891819 -126710.90369478415 L 942472.5600891819 -125663.70614358757 L 942472.5600891819 -124616.50859239098 L 942472.5600891819 -123569.31104119439 L 942472.5600891819 -122522.11348999779 L 942472.5600891819 -121474.91593880119 L 942472.5600891819 -120427.7183876046 L 942472.5600891819 -119380.52083640802 L 942472.5600891819 -118333.32328521143 L 942472.5600891819 -117286.12573401483 L 942472.5600891819 -116238.92818281824 L 942472.5600891819 -115191.73063162163 L 942472.5600891819 -114144.53308042503 L 942472.5600891819 -113097.33552922845 L 942472.5600891819 -112050.13797803185 L 942472.5600891819 -111002.94042683527 L 942472.5600891819 -109955.74287563867 L 942472.5600891819 -108908.54532444206 L 942472.5600891819 -107861.34777324549 L 942472.5600891819 -106814.15022204889 L 942472.5600891819 -105766.95267085229 L 942472.5600891819 -104719.75511965569 L 942472.5600891819 -103672.5575684591 L 942472.5600891819 -102625.3600172625 L 942472.5600891819 -101578.16246606591 L 942472.5600891819 -100530.96491486933 L 942472.5600891819 -99483.76736367273 L 942472.5600891819 -98436.56981247613 L 942472.5600891819 -97389.37226127954 L 942472.5600891819 -96342.17471008294 L 942472.5600891819 -95294.97715888635 L 942472.5600891819 -94247.77960768976 L 942472.5600891819 -93200.58205649316 L 942472.5600891819 -92153.38450529656 L 942472.5600891819 -91106.18695409998 L 942472.5600891819 -90058.98940290339 L 942472.5600891819 -89011.79185170679 L 942472.5600891819 -87964.59430051019 L 942472.5600891819 -86917.3967493136 L 942472.5600891819 -85870.199198117 L 942472.5600891819 -84823.0016469204 L 942472.5600891819 -83775.80409572383 L 942472.5600891819 -82728.60654452723 L 942472.5600891819 -81681.40899333062 L 942472.5600891819 -80634.21144213404 L 942472.5600891819 -79587.01389093744 L 942472.5600891819 -78539.81633974084 L 942472.5600891819 -77492.61878854425 L 942472.5600891819 -76445.42123734766 L 942472.5600891819 -75398.22368615106 L 942472.5600891819 -74351.02613495447 L 942472.5600891819 -73303.82858375787 L 942472.5600891819 -72256.63103256129 L 942472.5600891819 -71209.43348136469 L 942472.5600891819 -70162.2359301681 L 942472.5600891819 -69115.03837897151 L 942472.5600891819 -68067.8408277749 L 942472.5600891819 -67020.64327657831 L 942472.5600891819 -65973.44572538172 L 942472.5600891819 -64926.24817418513 L 942472.5600891819 -63879.050622988536 L 942472.5600891819 -62831.85307179195 L 942472.5600891819 -61784.65552059534 L 942472.5600891819 -60737.45796939875 L 942472.5600891819 -59690.26041820215 L 942472.5600891819 -58643.06286700557 L 942472.5600891819 -57595.86531580897 L 942472.5600891819 -56548.667764612364 L 942472.5600891819 -55501.47021341578 L 942472.5600891819 -54454.272662219184 L 942472.5600891819 -53407.0751110226 L 942472.5600891819 -52359.877559825996 L 942472.5600891819 -51312.6800086294 L 942472.5600891819 -50265.482457432816 L 942472.5600891819 -49218.284906236215 L 942472.5600891819 -48171.08735503962 L 942472.5600891819 -47123.889803843034 L 942472.5600891819 -46076.69225264643 L 942472.5600891819 -45029.49470144985 L 942472.5600891819 -43982.297150253245 L 942472.5600891819 -42935.09959905665 L 942472.5600891819 -41887.90204786005 L 942472.5600891819 -40840.70449666346 L 942472.5600891819 -39793.506945466856 L 942472.5600891819 -38746.309394270254 L 942472.5600891819 -37699.11184307366 L 942472.5600891819 -36651.91429187706 L 942472.5600891819 -35604.716740680466 L 942472.5600891819 -34557.519189483864 L 942472.5600891819 -33510.32163828726 L 942472.5600891819 -32463.124087090662 L 942472.5600891819 -31415.926535894065 L 942472.5600891819 -30368.728984697467 L 942472.5600891819 -29321.531433500866 L 942472.5600891819 -28274.333882304272 L 942472.5600891819 -27227.136331107675 L 942472.5600891819 -26179.938779911074 L 942472.5600891819 -25132.741228714476 L 942472.5600891819 -24085.543677517875 L 942472.5600891819 -23038.346126321278 L 942472.5600891819 -21991.148575124676 L 942472.5600891819 -20943.951023928083 L 942472.5600891819 -19896.753472731478 L 942472.5600891819 -18849.555921534884 L 942472.5600891819 -17802.358370338286 L 942472.5600891819 -16755.160819141685 L 942472.5600891819 -15707.963267945086 L 942472.5600891819 -14660.76571674849 L 942472.5600891819 -13613.56816555189 L 942472.5600891819 -12566.370614355292 L 942472.5600891819 -11519.173063158692 L 942472.5600891819 -10471.975511962095 L 942472.5600891819 -9424.777960765497 L 942472.5600891819 -8377.5804095689 L 942472.5600891819 -7330.3828583723025 L 942472.5600891819 -6283.185307175704 L 942472.5600891819 -5235.987755979108 L 942472.5600891819 -4188.79020478251 L 942472.5600891819 -3141.5926535859126 L 942472.5600891819 -2094.3951023893146 L 942472.5600891819 -1047.1975511927174 L 942472.5600891819 3.88054435974277e-9 L 942472.5600891819 1047.1975512004783 L 942472.5600891819 2094.395102397076 L 942472.5600891819 3141.5926535936737 L 942472.5600891819 4188.790204790273 L 942472.5600891819 5235.987755986869 L 942472.5600891819 6283.185307183467 L 942472.5600891819 7330.382858380064 L 942472.5600891819 8377.580409576662 L 942472.5600891819 9424.77796077326 L 942472.5600891819 10471.975511969858 L 942472.5600891819 11519.173063166456 L 942472.5600891819 12566.370614363055 L 942472.5600891819 13613.568165559655 L 942472.5600891819 14660.765716756252 L 942472.5600891819 15707.96326795285 L 942472.5600891819 16755.16081914945 L 942472.5600891819 17802.358370346046 L 942472.5600891819 18849.555921542644 L 942472.5600891819 19896.75347273925 L 942472.5600891819 20943.951023935842 L 942472.5600891819 21991.14857513244 L 942472.5600891819 23038.34612632904 L 942472.5600891819 24085.543677525635 L 942472.5600891819 25132.741228722236 L 942472.5600891819 26179.938779918833 L 942472.5600891819 27227.13633111544 L 942472.5600891819 28274.333882312032 L 942472.5600891819 29321.531433508633 L 942472.5600891819 30368.72898470523 L 942472.5600891819 31415.926535901828 L 942472.5600891819 32463.124087098426 L 942472.5600891819 33510.32163829502 L 942472.5600891819 34557.51918949163 L 942472.5600891819 35604.71674068822 L 942472.5600891819 36651.91429188482 L 942472.5600891819 37699.11184308142 L 942472.5600891819 38746.30939427802 L 942472.5600891819 39793.50694547462 L 942472.5600891819 40840.70449667121 L 942472.5600891819 41887.902047867814 L 942472.5600891819 42935.09959906441 L 942472.5600891819 43982.297150260994 L 942472.5600891819 45029.494701457596 L 942472.5600891819 46076.69225265419 L 942472.5600891819 47123.88980385078 L 942472.5600891819 48171.08735504738 L 942472.5600891819 49218.28490624396 L 942472.5600891819 50265.482457440565 L 942472.5600891819 51312.68000863716 L 942472.5600891819 52359.877559833745 L 942472.5600891819 53407.075111030346 L 942472.5600891819 54454.27266222694 L 942472.5600891819 55501.470213423534 L 942472.5600891819 56548.66776462013 L 942472.5600891819 57595.86531581673 L 942472.5600891819 58643.062867013316 L 942472.5600891819 59690.26041820991 L 942472.5600891819 60737.4579694065 L 942472.5600891819 61784.6555206031 L 942472.5600891819 62831.8530717997 L 942472.5600891819 63879.05062299629 L 942472.5600891819 64926.24817419288 L 942472.5600891819 65973.44572538947 L 942472.5600891819 67020.64327658607 L 942472.5600891819 68067.84082778267 L 942472.5600891819 69115.03837897925 L 942472.5600891819 70162.23593017586 L 942472.5600891819 71209.43348137244 L 942472.5600891819 72256.63103256904 L 942472.5600891819 73303.82858376563 L 942472.5600891819 74351.02613496223 L 942472.5600891819 75398.22368615882 L 942472.5600891819 76445.42123735542 L 942472.5600891819 77492.618788552 L 942472.5600891819 78539.8163397486 L 942472.5600891819 79587.0138909452 L 942472.5600891819 80634.21144214181 L 942472.5600891819 81681.40899333838 L 942472.5600891819 82728.60654453498 L 942472.5600891819 83775.80409573157 L 942472.5600891819 84823.00164692817 L 942472.5600891819 85870.19919812477 L 942472.5600891819 86917.39674932136 L 942472.5600891819 87964.59430051794 L 942472.5600891819 89011.79185171454 L 942472.5600891819 90058.98940291113 L 942472.5600891819 91106.18695410775 L 942472.5600891819 92153.38450530432 L 942472.5600891819 93200.58205650092 L 942472.5600891819 94247.7796076975 L 942472.5600891819 95294.97715889411 L 942472.5600891819 96342.17471009071 L 942472.5600891819 97389.37226128731 L 942472.5600891819 98436.56981248388 L 942472.5600891819 99483.76736368048 L 942472.5600891819 100530.96491487707 L 942472.5600891819 101578.16246607367 L 942472.5600891819 102625.36001727027 L 942472.5600891819 103672.55756846687 L 942472.5600891819 104719.75511966344 L 942472.5600891819 105766.95267086005 L 942472.5600891819 106814.15022205665 L 942472.5600891819 107861.34777325323 L 942472.5600891819 108908.54532444983 L 942472.5600891819 109955.7428756464 L 942472.5600891819 111002.94042684301 L 942472.5600891819 112050.13797803962 L 942472.5600891819 113097.3355292362 L 942472.5600891819 114144.53308043281 L 942472.5600891819 115191.7306316294 L 942472.5600891819 116238.92818282598 L 942472.5600891819 117286.12573402259 L 942472.5600891819 118333.32328521917 L 942472.5600891819 119380.52083641577 L 942472.5600891819 120427.71838761236 L 942472.5600891819 121474.91593880895 L 942472.5600891819 122522.11349000556 L 942472.5600891819 123569.31104120213 L 942472.5600891819 124616.50859239875 L 942472.5600891819 125663.70614359534 L 942472.5600891819 126710.90369479194 L 942472.5600891819 127758.10124598852 L 942472.5600891819 128805.29879718511 L 942472.5600891819 129852.49634838171 L 942472.5600891819 130899.6938995783 L 942472.5600891819 131946.89145077489 L 942472.5600891819 132994.0890019715 L 942472.5600891819 134041.2865531681 L 942472.5600891819 135088.4841043647 L 942472.5600891819 136135.68165556126 L 942472.5600891819 137182.87920675788 L 942472.5600891819 138230.07675795446 L 942472.5600891819 139277.27430915105 L 942472.5600891819 140324.47186034766 L 942472.5600891819 141371.66941154425 L 942472.5600891819 142418.86696274084 L 942472.5600891819 143466.06451393742 L 942472.5600891819 144513.262065134 L 942472.5600891819 145560.45961633063 L 942472.5600891819 146607.6571675272 L 942472.5600891819 147654.85471872383 L 942472.5600891819 148702.0522699204 L 942472.5600891819 149749.249821117 L 942472.5600891819 150796.44737231362 L 942472.5600891819 151843.64492351018 L 942472.5600891819 152890.8424747068 L 942472.5600891819 153938.04002590338 L 942472.5600891819 154985.23757709996 L 942472.5600891819 156032.43512829658 L 942472.5600891819 157079.63267949314 L 942472.5600891819 158126.83023068975 L 942472.5600891819 159174.02778188634 L 942472.5600891819 160221.22533308293 L 942472.5600891819 161268.42288427954 L 942472.5600891819 162315.6204354761 L 942472.5600891819 163362.81798667274 L 942472.5600891819 164410.0155378693 L 942472.5600891819 165457.2130890659 L 942472.5600891819 166504.4106402625 L 942472.5600891819 167551.6081914591 L 942472.5600891819 168598.8057426557 L 942472.5600891819 169646.00329385232 L 942472.5600891819 170693.20084504894 L 942472.5600891819 171740.39839624555 L 942472.5600891819 172787.59594744217 L 942472.5600891819 173834.79349863876 L 942472.5600891819 174881.9910498354 L 942472.5600891819 175929.188601032 L 942472.5600891819 176976.3861522286 L 942472.5600891819 178023.58370342522 L 942472.5600891819 179070.78125462183 L 942472.5600891819 180117.97880581845 L 942472.5600891819 181165.17635701507 L 942472.5600891819 182212.37390821165 L 942472.5600891819 183259.5714594083 L 942472.5600891819 184306.76901060488 L 942472.5600891819 185353.96656180153 L 942472.5600891819 186401.1641129981 L 942472.5600891819 187448.36166419473 L 942472.5600891819 188495.55921539135 L 942472.5600891819 189542.75676658796 L 942472.5600891819 190589.95431778455 L 942472.5600891819 191637.1518689812 L 942472.5600891819 192684.34942017778 L 942472.5600891819 193731.54697137442 L 942472.5600891819 194778.744522571 L 942472.5600891819 195825.9420737676 L 942472.5600891819 196873.13962496424 L 942472.5600891819 197920.33717616083 L 942472.5600891819 198967.53472735747 L 942472.5600891819 200014.7322785541 L 942472.5600891819 201061.9298297507 L 942472.5600891819 202109.12738094732 L 942472.5600891819 203156.3249321439 L 942472.5600891819 204203.52248334055 L 942472.5600891819 205250.72003453714 L 942472.5600891819 206297.91758573378 L 942472.5600891819 207345.11513693037 L 942472.5600891819 208392.31268812701 L 942472.5600891819 209439.5102393236 L 942472.5600891819 210486.70779052025 L 942472.5600891819 211533.90534171683 L 942472.5600891819 212581.10289291342 L 942472.5600891819 213628.30044411003 L 942472.5600891819 214675.4979953067 L 942472.5600891819 215722.6955465033 L 942472.5600891819 216769.89309769988 L 942472.5600891819 217817.0906488965 L 942472.5600891819 218864.28820009308 L 942472.5600891819 219911.4857512897 L 942472.5600891819 220958.68330248634 L 942472.5600891819 222005.88085368296 L 942472.5600891819 223053.07840487955 L 942472.5600891819 224100.27595607616 L 942472.5600891819 225147.47350727275 L 942472.5600891819 226194.67105846942 L 942472.5600891819 227241.868609666 L 942472.5600891819 228289.06616086263 L 942472.5600891819 229336.2637120592 L 942472.5600891819 230383.46126325583 L 942472.5600891819 231430.65881445247 L 942472.5600891819 232477.8563656491 L 942472.5600891819 233525.05391684567 L 942472.5600891819 234572.2514680423 L 942472.5600891819 235619.44901923888 L 942472.5600891819 236666.64657043555 L 942472.5600891819 237713.84412163214 L 942472.5600891819 238761.04167282875 L 942472.5600891819 239808.23922402534 L 942472.5600891819 240855.43677522198 L 942472.5600891819 241902.63432641857 L 942472.5600891819 242949.83187761522 L 942472.5600891819 243997.0294288118 L 942472.5600891819 245044.22698000842 L 942472.5600891819 246091.42453120503 L 942472.5600891819 247138.62208240165 L 942472.5600891819 248185.81963359826 L 942472.5600891819 249233.01718479488 L 942472.5600891819 250280.2147359915 L 942472.5600891819 251327.4122871881 L 942472.5600891819 252374.6098383847 L 942472.5600891819 253421.80738958134 L 942472.5600891819 254469.00494077796 L 942472.5600891819 255516.20249197457 L 942472.5600891819 256563.40004317116 L 942472.5600891819 257610.59759436778 L 942472.5600891819 258657.79514556436 L 942472.5600891819 259704.99269676104 L 942472.5600891819 260752.19024795762 L 942472.5600891819 261799.38779915424 L 942472.5600891819 262846.5853503508 L 942472.5600891819 263893.78290154744 L 942472.5600891819 264940.9804527441 L 942472.5600891819 265988.1780039407 L 942472.5600891819 267035.3755551373 L 942472.5600891819 268082.5731063339 L 942472.5600891819 269129.77065753046 L 942472.5600891819 270176.96820872714 L 942472.5600891819 271224.16575992375 L 942472.5600891819 272271.36331112037 L 942472.5600891819 273318.5608623169 L 942472.5600891819 274365.75841351354 L 942472.5600891819 275412.9559647102 L 942472.5600891819 276460.15351590683 L 942472.5600891819 277507.3510671034 L 942472.5600891819 278554.5486183 L 942472.5600891819 279601.7461694966 L 942472.5600891819 280648.94372069323 L 942472.5600891819 281696.14127188985 L 942472.5600891819 282743.33882308647 L 942472.5600891819 283790.5363742831 L 942472.5600891819 284837.7339254797 L 942472.5600891819 285884.9314766763 L 942472.5600891819 286932.1290278729 L 942472.5600891819 287979.32657906954 L 942472.5600891819 289026.52413026616 L 942472.5600891819 290073.7216814628 L 942472.5600891819 291120.9192326594 L 942472.5600891819 292168.116783856 L 942472.5600891819 293215.3143350526 L 942472.5600891819 294262.51188624924 L 942472.5600891819 295309.70943744585 L 942472.5600891819 296356.9069886424 L 942472.5600891819 297404.104539839 L 942472.5600891819 298451.3020910357 L 942472.5600891819 299498.4996422323 L 942472.5600891819 300545.6971934289 L 942472.5600891819 301592.8947446255 L 942472.5600891819 302640.0922958221 L 942472.5600891819 303687.2898470188 L 942472.5600891819 304734.48739821534 L 942472.5600891819 305781.68494941195 L 942472.5600891819 306828.88250060857 L 942472.5600891819 307876.0800518052 L 942472.5600891819 308923.2776030018 L 942472.5600891819 309970.4751541984 L 942472.5600891819 311017.67270539503 L 942472.5600891819 312064.87025659165 L 942472.5600891819 313112.0678077882 L 942472.5600891819 314159.2653589849 L 942472.5600891819 315206.4629101815 L 942472.5600891819 316253.6604613781 L 942472.5600891819 317300.85801257467 L 942472.5600891819 318348.0555637713 L 942472.5600891819 319395.2531149679 L 942472.5600891819 320442.4506661646 L 942472.5600891819 321489.64821736113 L 942472.5600891819 322536.84576855775 L 942472.5600891819 323584.04331975436 L 942472.5600891819 324631.2408709509 L 942472.5600891819 325678.4384221476 L 942472.5600891819 326725.6359733442 L 942472.5600891819 327772.8335245408 L 942472.5600891819 328820.0310757374 L 942472.5600891819 329867.228626934 L 942472.5600891819 330914.42617813067 L 942472.5600891819 331961.6237293273 L 942472.5600891819 333008.82128052384 L 942472.5600891819 334056.01883172046 L 942472.5600891819 335103.2163829171 L 942472.5600891819 336150.4139341137 L 942472.5600891819 337197.61148531025 L 942472.5600891819 338244.8090365069 L 942472.5600891819 339292.00658770354 L 942472.5600891819 340339.20413890015 L 942472.5600891819 341386.4016900967 L 942472.5600891819 342433.5992412934 L 942472.5600891819 343480.79679249 L 942472.5600891819 344527.9943436866 L 942472.5600891819 345575.1918948832 L 942472.5600891819 346622.38944607985 L 942472.5600891819 347669.58699727646 L 942472.5600891819 348716.7845484731 L 942472.5600891819 349763.98209966964 L 942472.5600891819 350811.17965086625 L 942472.5600891819 351858.3772020629 L 942472.5600891819 352905.57475325954 L 942472.5600891819 353952.7723044561 L 942472.5600891819 354999.9698556527 L 942472.5600891819 356047.16740684933 L 942472.5600891819 357094.36495804595 L 942472.5600891819 358141.56250924256 L 942472.5600891819 359188.7600604392 L 942472.5600891819 360235.9576116358 L 942472.5600891819 361283.1551628324 L 942472.5600891819 362330.35271402897 L 942472.5600891819 363377.55026522564 L 942472.5600891819 364424.74781642226 L 942472.5600891819 365471.9453676189 L 942472.5600891819 366519.1429188154 L 942472.5600891819 367566.34047001204 L 942472.5600891819 368613.5380212087 L 942472.5600891819 369660.73557240533 L 942472.5600891819 370707.9331236019 L 942472.5600891819 371755.1306747985 L 942472.5600891819 372802.3282259951 L 942472.5600891819 373849.5257771918 L 942472.5600891819 374896.72332838835 L 942472.5600891819 375943.92087958497 L 942472.5600891819 376991.1184307816 L 942472.5600891819 378038.31598197814 L 942472.5600891819 379085.51353317476 L 942472.5600891819 380132.71108437143 L 942472.5600891819 381179.90863556805 L 942472.5600891819 382227.1061867646 L 942472.5600891819 383274.3037379612 L 942472.5600891819 384321.50128915784 L 942472.5600891819 385368.6988403545 L 942472.5600891819 386415.89639155107 L 942472.5600891819 387463.0939427477 L 942472.5600891819 388510.2914939443 L 942472.5600891819 389557.4890451409 L 942472.5600891819 390604.68659633753 L 942472.5600891819 391651.88414753415 L 942472.5600891819 392699.08169873076 L 942472.5600891819 393746.2792499274 L 942472.5600891819 394793.47680112394 L 942472.5600891819 395840.67435232055 L 942472.5600891819 396887.8719035172 L 942472.5600891819 397935.06945471384 L 942472.5600891819 398982.2670059104 L 942472.5600891819 400029.464557107 L 942472.5600891819 401076.66210830363 L 942472.5600891819 402123.8596595003 L 942472.5600891819 403171.05721069686 L 942472.5600891819 404218.2547618935 L 942472.5600891819 405265.4523130901 L 942472.5600891819 406312.64986428665 L 942472.5600891819 407359.8474154833 L 942472.5600891819 408407.04496667994 L 942472.5600891819 409454.24251787656 L 942472.5600891819 410501.44006907317 L 942472.5600891819 411548.6376202697 L 942472.5600891819 412595.8351714664 L 942472.5600891819 413643.032722663 L 942472.5600891819 414690.23027385963 L 942472.5600891819 415737.4278250562 L 942472.5600891819 416784.62537625286 L 942472.5600891819 417831.8229274495 L 942472.5600891819 418879.0204786461 L 942472.5600891819 419926.21802984265 L 942472.5600891819 420973.41558103927 L 942472.5600891819 422020.61313223594 L 942472.5600891819 423067.81068343256 L 942472.5600891819 424115.0082346291 L 942472.5600891819 425162.20578582573 L 942472.5600891819 426209.4033370224 L 942472.5600891819 427256.600888219 L 942472.5600891819 428303.7984394156 L 942472.5600891819 429350.9959906122 L 942472.5600891819 430398.1935418088 L 942472.5600891819 431445.3910930055 L 942472.5600891819 432492.58864420204 L 942472.5600891819 433539.78619539866 L 942472.5600891819 434586.9837465953 L 942472.5600891819 435634.18129779183 L 942472.5600891819 436681.3788489885 L 942472.5600891819 437728.5764001851 L 942472.5600891819 438775.77395138174 L 942472.5600891819 439822.9715025784 L 942472.5600891819 440870.1690537749 L 942472.5600891819 441917.3666049716 L 942472.5600891819 442964.5641561682 L 942472.5600891819 444011.76170736476 L 942472.5600891819 445058.95925856143 L 942472.5600891819 446106.156809758 L 942472.5600891819 447153.35436095466 L 942472.5600891819 448200.55191215116 L 942472.5600891819 449247.74946334783 L 942472.5600891819 450294.9470145445 L 942472.5600891819 451342.14456574107 L 942472.5600891819 452389.3421169377 L 942472.5600891819 453436.53966813424 L 942472.5600891819 454483.7372193309 L 942472.5600891819 455530.9347705276 L 942472.5600891819 456578.1323217241 L 942472.5600891819 457625.32987292076 L 942472.5600891819 458672.5274241173 L 942472.5600891819 459719.724975314 L 942472.5600891819 460766.9225265106 L 942472.5600891819 461814.12007770716 L 942472.5600891819 462861.31762890384 L 942472.5600891819 463908.5151801004 L 942472.5600891819 464955.712731297 L 942472.5600891819 466002.9102824937 L 942472.5600891819 467050.10783369024 L 942472.5600891819 468097.3053848869 L 942472.5600891819 469144.5029360834 L 942472.5600891819 470191.7004872801 L 942472.5600891819 471233.66205071297 L 941430.598525741 471233.66205071297 L 940383.4009745448 471233.66205071297 L 939336.2034233486 471233.66205071297 L 938289.0058721517 471233.66205071297 L 937241.808320955 471233.66205071297 L 936194.6107697586 471233.66205071297 L 935147.4132185625 471233.66205071297 L 934100.2156673657 471233.66205071297 L 933053.0181161688 471233.66205071297 L 932005.8205649726 471233.66205071297 L 930958.6230137763 471233.66205071297 L 929911.4254625794 471233.66205071297 L 928864.2279113828 471233.66205071297 L 927817.0303601864 471233.66205071297 L 926769.8328089903 471233.66205071297 L 925722.6352577932 471233.66205071297 L 924675.4377065965 471233.66205071297 L 923628.2401554004 471233.66205071297 L 922581.0426042039 471233.66205071297 L 921533.8450530071 471233.66205071297 L 920486.6475018102 471233.66205071297 L 919439.4499506141 471233.66205071297 L 918392.2523994179 471233.66205071297 L 917345.054848221 471233.66205071297 L 916297.8572970242 471233.66205071297 L 915250.6597458278 471233.66205071297 L 914203.4621946317 471233.66205071297 L 913156.2646434349 471233.66205071297 L 912109.067092238 471233.66205071297 L 911061.8695410418 471233.66205071297 L 910014.6719898455 471233.66205071297 L 908967.4744386488 471233.66205071297 L 907920.2768874519 471233.66205071297 L 906873.0793362556 471233.66205071297 L 905825.8817850595 471233.66205071297 L 904778.6842338624 471233.66205071297 L 903731.4866826657 471233.66205071297 L 902684.2891314696 471233.66205071297 L 901637.0915802731 471233.66205071297 L 900589.8940290764 471233.66205071297 L 899542.6964778795 471233.66205071297 L 898495.4989266833 471233.66205071297 L 897448.3013754871 471233.66205071297 L 896401.1038242902 471233.66205071297 L 895353.9062730934 471233.66205071297 L 894306.7087218972 471233.66205071297 L 893259.5111707009 471233.66205071297 L 892212.313619504 471233.66205071297 L 891165.1160683073 471233.66205071297 L 890117.918517111 471233.66205071297 L 889070.7209659148 471233.66205071297 L 888023.523414718 471233.66205071297 L 886976.3258635211 471233.66205071297 L 885929.1283123249 471233.66205071297 L 884881.9307611287 471233.66205071297 L 883834.7332099318 471233.66205071297 L 882787.5356587351 471233.66205071297 L 881740.3381075386 471233.66205071297 L 880693.1405563426 471233.66205071297 L 879645.9430051458 471233.66205071297 L 878598.7454539487 471233.66205071297 L 877551.5479027526 471233.66205071297 L 876504.3503515562 471233.66205071297 L 875457.1528003594 471233.66205071297 L 874409.9552491627 471233.66205071297 L 873362.7576979664 471233.66205071297 L 872315.5601467702 471233.66205071297 L 871268.3625955733 471233.66205071297 L 870221.1650443765 471233.66205071297 L 869173.9674931804 471233.66205071297 L 868126.769941984 471233.66205071297 L 867079.5723907872 471233.66205071297 L 866032.3748395903 471233.66205071297 L 864985.1772883941 471233.66205071297 L 863937.979737198 471233.66205071297 L 862890.7821860011 471233.66205071297 L 861843.5846348043 471233.66205071297 L 860796.3870836078 471233.66205071297 L 859749.1895324118 471233.66205071297 L 858701.991981215 471233.66205071297 L 857654.794430018 471233.66205071297 L 856607.5968788218 471233.66205071297 L 855560.3993276255 471233.66205071297 L 854513.2017764288 471233.66205071297 L 853466.0042252318 471233.66205071297 L 852418.8066740356 471233.66205071297 L 851371.6091228393 471233.66205071297 L 850324.4115716426 471233.66205071297 L 849277.2140204457 471233.66205071297 L 848230.0164692495 471233.66205071297 L 847182.8189180532 471233.66205071297 L 846135.6213668564 471233.66205071297 L 845088.4238156596 471233.66205071297 L 844041.2262644634 471233.66205071297 L 842994.0287132671 471233.66205071297 L 841946.8311620703 471233.66205071297 L 840899.6336108735 471233.66205071297 L 839852.4360596772 471233.66205071297 L 838805.238508481 471233.66205071297 L 837758.0409572842 471233.66205071297 L 836710.8434060874 471233.66205071297 L 835663.645854891 471233.66205071297 L 834616.4483036948 471233.66205071297 L 833569.250752498 471233.66205071297 L 832522.0532013013 471233.66205071297 L 831474.8556501049 471233.66205071297 L 830427.6580989087 471233.66205071297 L 829380.4605477117 471233.66205071297 L 828333.2629965149 471233.66205071297 L 827286.0654453188 471233.66205071297 L 826238.8678941226 471233.66205071297 L 825191.6703429256 471233.66205071297 L 824144.4727917288 471233.66205071297 L 823097.2752405327 471233.66205071297 L 822050.0776893364 471233.66205071297 L 821002.8801381395 471233.66205071297 L 819955.6825869427 471233.66205071297 L 818908.4850357465 471233.66205071297 L 817861.2874845503 471233.66205071297 L 816814.0899333534 471233.66205071297 L 815766.8923821566 471233.66205071297 L 814719.6948309602 471233.66205071297 L 813672.497279764 471233.66205071297 L 812625.2997285671 471233.66205071297 L 811578.1021773703 471233.66205071297 L 810530.9046261741 471233.66205071297 L 809483.7070749779 471233.66205071297 L 808436.509523781 471233.66205071297 L 807389.3119725841 471233.66205071297 L 806342.114421388 471233.66205071297 L 805294.9168701918 471233.66205071297 L 804247.7193189948 471233.66205071297 L 803200.521767798 471233.66205071297 L 802153.3242166018 471233.66205071297 L 801106.1266654056 471233.66205071297 L 800058.9291142087 471233.66205071297 L 799011.7315630119 471233.66205071297 L 797964.5340118157 471233.66205071297 L 796917.3364606193 471233.66205071297 L 795870.1389094226 471233.66205071297 L 794822.941358226 471233.66205071297 L 793775.7438070296 471233.66205071297 L 792728.546255833 471233.66205071297 L 791681.3487046364 471233.66205071297 L 790634.1511534399 471233.66205071297 L 789586.9536022433 471233.66205071297 L 788539.7560510469 471233.66205071297 L 787492.5584998503 471233.66205071297 L 786445.3609486538 471233.66205071297 L 785398.1633974571 471233.66205071297 L 784350.9658462607 471233.66205071297 L 783303.7682950642 471233.66205071297 L 782256.5707438677 471233.66205071297 L 781209.373192671 471233.66205071297 L 780162.1756414744 471233.66205071297 L 779114.9780902781 471233.66205071297 L 778067.7805390815 471233.66205071297 L 777020.5829878849 471233.66205071297 L 775973.3854366883 471233.66205071297 L 774926.1878854918 471233.66205071297 L 773878.9903342952 471233.66205071297 L 772831.7927830988 471233.66205071297 L 771784.5952319022 471233.66205071297 L 770737.3976807056 471233.66205071297 L 769690.2001295091 471233.66205071297 L 768643.0025783126 471233.66205071297 L 767595.8050271161 471233.66205071297 L 766548.6074759195 471233.66205071297 L 765501.409924723 471233.66205071297 L 764454.2123735264 471233.66205071297 L 763407.01482233 471233.66205071297 L 762359.8172711334 471233.66205071297 L 761312.6197199369 471233.66205071297 L 760265.4221687403 471233.66205071297 L 759218.2246175437 471233.66205071297 L 758171.0270663472 471233.66205071297 L 757123.8295151507 471233.66205071297 L 756076.6319639542 471233.66205071297 L 755029.4344127576 471233.66205071297 L 753982.236861561 471233.66205071297 L 752935.0393103645 471233.66205071297 L 751887.841759168 471233.66205071297 L 750840.6442079715 471233.66205071297 L 749793.4466567748 471233.66205071297 L 748746.2491055783 471233.66205071297 L 747699.0515543818 471233.66205071297 L 746651.8540031853 471233.66205071297 L 745604.6564519887 471233.66205071297 L 744557.4589007922 471233.66205071297 L 743510.2613495957 471233.66205071297 L 742463.0637983992 471233.66205071297 L 741415.8662472026 471233.66205071297 L 740368.6686960061 471233.66205071297 L 739321.4711448095 471233.66205071297 L 738274.2735936131 471233.66205071297 L 737227.0760424165 471233.66205071297 L 736179.8784912198 471233.66205071297 L 735132.6809400234 471233.66205071297 L 734085.4833888268 471233.66205071297 L 733038.2858376304 471233.66205071297 L 731991.0882864337 471233.66205071297 L 730943.8907352372 471233.66205071297 L 729896.6931840406 471233.66205071297 L 728849.4956328443 471233.66205071297 L 727802.2980816476 471233.66205071297 L 726755.100530451 471233.66205071297 L 725707.9029792545 471233.66205071297 L 724660.7054280579 471233.66205071297 L 723613.5078768614 471233.66205071297 L 722566.3103256649 471233.66205071297 L 721519.1127744684 471233.66205071297 L 720471.9152232718 471233.66205071297 L 719424.7176720753 471233.66205071297 L 718377.5201208788 471233.66205071297 L 717330.3225696823 471233.66205071297 L 716283.1250184857 471233.66205071297 L 715235.9274672891 471233.66205071297 L 714188.7299160926 471233.66205071297 L 713141.5323648961 471233.66205071297 L 712094.3348136996 471233.66205071297 L 711047.137262503 471233.66205071297 L 709999.9397113065 471233.66205071297 L 708952.7421601098 471233.66205071297 L 707905.5446089134 471233.66205071297 L 706858.3470577169 471233.66205071297 L 705811.1495065204 471233.66205071297 L 704763.9519553237 471233.66205071297 L 703716.7544041271 471233.66205071297 L 702669.5568529307 471233.66205071297 L 701622.3593017343 471233.66205071297 L 700575.1617505376 471233.66205071297 L 699527.964199341 471233.66205071297 L 698480.7666481445 471233.66205071297 L 697433.569096948 471233.66205071297 L 696386.3715457515 471233.66205071297 L 695339.1739945549 471233.66205071297 L 694291.9764433583 471233.66205071297 L 693244.7788921619 471233.66205071297 L 692197.5813409653 471233.66205071297 L 691150.3837897688 471233.66205071297 L 690103.1862385722 471233.66205071297 L 689055.9886873757 471233.66205071297 L 688008.7911361792 471233.66205071297 L 686961.5935849827 471233.66205071297 L 685914.3960337861 471233.66205071297 L 684867.1984825896 471233.66205071297 L 683820.000931393 471233.66205071297 L 682772.8033801966 471233.66205071297 L 681725.6058289999 471233.66205071297 L 680678.4082778033 471233.66205071297 L 679631.2107266069 471233.66205071297 L 678584.0131754105 471233.66205071297 L 677536.8156242138 471233.66205071297 L 676489.6180730172 471233.66205071297 L 675442.4205218207 471233.66205071297 L 674395.2229706242 471233.66205071297 L 673348.0254194275 471233.66205071297 L 672300.8278682311 471233.66205071297 L 671253.6303170345 471233.66205071297 L 670206.432765838 471233.66205071297 L 669159.2352146414 471233.66205071297 L 668112.037663445 471233.66205071297 L 667064.8401122484 471233.66205071297 L 666017.6425610519 471233.66205071297 L 664970.4450098553 471233.66205071297 L 663923.2474586588 471233.66205071297 L 662876.0499074623 471233.66205071297 L 661828.8523562658 471233.66205071297 L 660781.6548050692 471233.66205071297 L 659734.4572538725 471233.66205071297 L 658687.259702676 471233.66205071297 L 657640.0621514797 471233.66205071297 L 656592.8646002831 471233.66205071297 L 655545.6670490864 471233.66205071297 L 654498.4694978899 471233.66205071297 L 653451.2719466933 471233.66205071297 L 652404.074395497 471233.66205071297 L 651356.8768443003 471233.66205071297 L 650309.6792931037 471233.66205071297 L 649262.4817419072 471233.66205071297 L 648215.2841907106 471233.66205071297 L 647168.0866395142 471233.66205071297 L 646120.8890883176 471233.66205071297 L 645073.6915371211 471233.66205071297 L 644026.4939859245 471233.66205071297 L 642979.296434728 471233.66205071297 L 641932.0988835315 471233.66205071297 L 640884.901332335 471233.66205071297 L 639837.7037811384 471233.66205071297 L 638790.5062299418 471233.66205071297 L 637743.3086787454 471233.66205071297 L 636696.1111275487 471233.66205071297 L 635648.9135763523 471233.66205071297 L 634601.7160251557 471233.66205071297 L 633554.5184739592 471233.66205071297 L 632507.3209227625 471233.66205071297 L 631460.1233715661 471233.66205071297 L 630412.9258203696 471233.66205071297 L 629365.7282691731 471233.66205071297 L 628318.5307179764 471233.66205071297 L 627271.33316678 471233.66205071297 L 626224.1356155834 471233.66205071297 L 625176.938064387 471233.66205071297 L 624129.7405131903 471233.66205071297 L 623082.5429619937 471233.66205071297 L 622035.3454107973 471233.66205071297 L 620988.1478596007 471233.66205071297 L 619940.9503084042 471233.66205071297 L 618893.7527572076 471233.66205071297 L 617846.555206011 471233.66205071297 L 616799.3576548146 471233.66205071297 L 615752.160103618 471233.66205071297 L 614704.9625524214 471233.66205071297 L 613657.7650012249 471233.66205071297 L 612610.5674500285 471233.66205071297 L 611563.3698988319 471233.66205071297 L 610516.1723476353 471233.66205071297 L 609468.9747964387 471233.66205071297 L 608421.7772452423 471233.66205071297 L 607374.5796940458 471233.66205071297 L 606327.3821428492 471233.66205071297 L 605280.1845916526 471233.66205071297 L 604232.987040456 471233.66205071297 L 603185.7894892596 471233.66205071297 L 602138.591938063 471233.66205071297 L 601091.3943868665 471233.66205071297 L 600044.1968356699 471233.66205071297 L 598996.9992844734 471233.66205071297 L 597949.8017332769 471233.66205071297 L 596902.6041820804 471233.66205071297 L 595855.4066308838 471233.66205071297 L 594808.2090796873 471233.66205071297 L 593761.0115284907 471233.66205071297 L 592713.8139772941 471233.66205071297 L 591666.6164260977 471233.66205071297 L 590619.4188749011 471233.66205071297 L 589572.2213237046 471233.66205071297 L 588525.023772508 471233.66205071297 L 587477.8262213115 471233.66205071297 L 586430.628670115 471233.66205071297 L 585383.4311189185 471233.66205071297 L 584336.2335677219 471233.66205071297 L 583289.0360165254 471233.66205071297 L 582241.8384653287 471233.66205071297 L 581194.6409141324 471233.66205071297 L 580147.4433629357 471233.66205071297 L 579100.2458117392 471233.66205071297 L 578053.0482605426 471233.66205071297 L 577005.8507093461 471233.66205071297 L 575958.6531581496 471233.66205071297 L 574911.4556069531 471233.66205071297 L 573864.2580557565 471233.66205071297 L 572817.0605045599 471233.66205071297 L 571769.8629533635 471233.66205071297 L 570722.6654021668 471233.66205071297 L 569675.4678509703 471233.66205071297 L 568628.2702997738 471233.66205071297 L 567581.0727485772 471233.66205071297 L 566533.8751973807 471233.66205071297 L 565486.6776461841 471233.66205071297 L 564439.4800949877 471233.66205071297 L 563392.2825437911 471233.66205071297 L 562345.0849925946 471233.66205071297 L 561297.887441398 471233.66205071297 L 560250.6898902014 471233.66205071297 L 559203.492339005 471233.66205071297 L 558156.2947878084 471233.66205071297 L 557109.0972366119 471233.66205071297 L 556061.8996854153 471233.66205071297 L 555014.7021342188 471233.66205071297 L 553967.5045830223 471233.66205071297 L 552920.3070318258 471233.66205071297 L 551873.1094806292 471233.66205071297 L 550825.9119294327 471233.66205071297 L 549778.7143782361 471233.66205071297 L 548731.5168270395 471233.66205071297 L 547684.3192758431 471233.66205071297 L 546637.1217246465 471233.66205071297 L 545589.92417345 471233.66205071297 L 544542.7266222534 471233.66205071297 L 543495.5290710569 471233.66205071297 L 542448.3315198603 471233.66205071297 L 541401.1339686639 471233.66205071297 L 540353.9364174673 471233.66205071297 L 539306.7388662708 471233.66205071297 L 538259.5413150742 471233.66205071297 L 537212.3437638778 471233.66205071297 L 536165.1462126812 471233.66205071297 L 535117.9486614845 471233.66205071297 L 534070.7511102881 471233.66205071297 L 533023.5535590915 471233.66205071297 L 531976.3560078951 471233.66205071297 L 530929.1584566984 471233.66205071297 L 529881.9609055019 471233.66205071297 L 528834.7633543054 471233.66205071297 L 527787.5658031087 471233.66205071297 L 526740.3682519123 471233.66205071297 L 525693.1707007157 471233.66205071297 L 524645.9731495193 471233.66205071297 L 523598.7755983226 471233.66205071297 L 522551.5780471261 471233.66205071297 L 521504.38049592957 471233.66205071297 L 520457.1829447331 471233.66205071297 L 519409.9853935365 471233.66205071297 L 518362.78784233995 471233.66205071297 L 517315.59029114345 471233.66205071297 L 516268.39273994684 471233.66205071297 L 515221.1951887504 471233.66205071297 L 514173.99763755384 471233.66205071297 L 513126.80008635734 471233.66205071297 L 512079.6025351607 471233.66205071297 L 511032.40498396417 471233.66205071297 L 509985.2074327677 471233.66205071297 L 508938.00988157117 471233.66205071297 L 507890.8123303746 471233.66205071297 L 506843.61477917805 471233.66205071297 L 505796.41722798144 471233.66205071297 L 504749.21967678505 471233.66205071297 L 503702.02212558844 471233.66205071297 L 502654.82457439194 471233.66205071297 L 501607.6270231953 471233.66205071297 L 500560.42947199877 471233.66205071297 L 499513.23192080227 471233.66205071297 L 498466.03436960577 471233.66205071297 L 497418.8368184092 471233.66205071297 L 496371.63926721265 471233.66205071297 L 495324.44171601615 471233.66205071297 L 494277.24416481954 471233.66205071297 L 493230.04661362304 471233.66205071297 L 492182.84906242654 471233.66205071297 L 491135.65151123 471233.66205071297 L 490088.4539600334 471233.66205071297 L 489041.25640883687 471233.66205071297 L 487994.0588576404 471233.66205071297 L 486946.86130644387 471233.66205071297 L 485899.66375524725 471233.66205071297 L 484852.46620405075 471233.66205071297 L 483805.2686528542 471233.66205071297 L 482758.07110165776 471233.66205071297 L 481710.87355046114 471233.66205071297 L 480663.6759992646 471233.66205071297 L 479616.4784480681 471233.66205071297 L 478569.28089687147 471233.66205071297 L 477522.08334567497 471233.66205071297 L 476474.88579447847 471233.66205071297 L 475427.68824328197 471233.66205071297 L 474380.49069208535 471233.66205071297 L 473333.2931408888 471233.66205071297 L 472286.0955896923 471233.66205071297 L 471238.8980384958 471233.66205071297 L 470191.70048729924 471233.66205071297 L 469144.5029361027 471233.66205071297 L 468097.3053849061 471233.66205071297 L 467050.10783370957 471233.66205071297 L 466002.91028251307 471233.66205071297 L 464955.71273131657 471233.66205071297 L 463908.51518012 471233.66205071297 L 462861.3176289234 471233.66205071297 L 461814.1200777269 471233.66205071297 L 460766.9225265304 471233.66205071297 L 459719.7249753339 471233.66205071297 L 458672.5274241373 471233.66205071297 L 457625.3298729408 471233.66205071297 L 456578.1323217442 471233.66205071297 L 455530.9347705476 471233.66205071297 L 454483.73721935117 471233.66205071297 L 453436.5396681546 471233.66205071297 L 452389.3421169581 471233.66205071297 L 451342.1445657615 471233.66205071297 L 450294.94701456494 471233.66205071297 L 449247.7494633685 471233.66205071297 L 448200.55191217194 471233.66205071297 L 447153.3543609754 471233.66205071297 L 446106.1568097788 471233.66205071297 L 445058.9592585822 471233.66205071297 L 444011.7617073858 471233.66205071297 L 442964.5641561892 471233.66205071297 L 441917.3666049927 471233.66205071297 L 440870.1690537961 471233.66205071297 L 439822.9715025996 471233.66205071297 L 438775.7739514031 471233.66205071297 L 437728.5764002066 471233.66205071297 L 436681.37884901 471233.66205071297 L 435634.1812978134 471233.66205071297 L 434586.9837466169 471233.66205071297 L 433539.7861954203 471233.66205071297 L 432492.58864422387 471233.66205071297 L 431445.3910930273 471233.66205071297 L 430398.19354183075 471233.66205071297 L 429350.9959906342 471233.66205071297 L 428303.79843943764 471233.66205071297 L 427256.6008882412 471233.66205071297 L 426209.40333704464 471233.66205071297 L 425162.205785848 471233.66205071297 L 424115.0082346515 471233.66205071297 L 423067.81068345497 471233.66205071297 L 422020.61313225847 471233.66205071297 L 420973.4155810619 471233.66205071297 L 419926.21802986535 471233.66205071297 L 418879.02047866886 471233.66205071297 L 417831.8229274723 471233.66205071297 L 416784.6253762758 471233.66205071297 L 415737.4278250792 471233.66205071297 L 414690.23027388274 471233.66205071297 L 413643.0327226861 471233.66205071297 L 412595.8351714896 471233.66205071297 L 411548.63762029307 471233.66205071297 L 410501.4400690965 471233.66205071297 L 409454.2425179 471233.66205071297 L 408407.04496670346 471233.66205071297 L 407359.8474155069 471233.66205071297 L 406312.6498643104 471233.66205071297 L 405265.45231311384 471233.66205071297 L 404218.25476191734 471233.66205071297 L 403171.0572107208 471233.66205071297 L 402123.85965952417 471233.66205071297 L 401076.6621083277 471233.66205071297 L 400029.4645571311 471233.66205071297 L 398982.2670059347 471233.66205071297 L 397935.06945473806 471233.66205071297 L 396887.87190354156 471233.66205071297 L 395840.674352345 471233.66205071297 L 394793.47680114844 471233.66205071297 L 393746.27924995194 471233.66205071297 L 392699.0816987554 471233.66205071297 L 391651.8841475589 471233.66205071297 L 390604.6865963623 471233.66205071297 L 389557.4890451658 471233.66205071297 L 388510.2914939692 471233.66205071297 L 387463.0939427727 471233.66205071297 L 386415.89639157616 471233.66205071297 L 385368.69884037966 471233.66205071297 L 384321.5012891831 471233.66205071297 L 383274.30373798654 471233.66205071297 L 382227.10618679 471233.66205071297 L 381179.9086355935 471233.66205071297 L 380132.71108439687 471233.66205071297 L 379085.5135332004 471233.66205071297 L 378038.3159820038 471233.66205071297 L 376991.1184308074 471233.66205071297 L 375943.92087961076 471233.66205071297 L 374896.7233284142 471233.66205071297 L 373849.5257772177 471233.66205071297 L 372802.32822602114 471233.66205071297 L 371755.13067482464 471233.66205071297 L 370707.9331236281 471233.66205071297 L 369660.7355724315 471233.66205071297 L 368613.538021235 471233.66205071297 L 367566.34047003847 471233.66205071297 L 366519.1429188419 471233.66205071297 L 365471.9453676454 471233.66205071297 L 364424.7478164488 471233.66205071297 L 363377.55026525236 471233.66205071297 L 362330.35271405574 471233.66205071297 L 361283.15516285924 471233.66205071297 L 360235.9576116627 471233.66205071297 L 359188.7600604662 471233.66205071297 L 358141.5625092696 471233.66205071297 L 357094.36495807307 471233.66205071297 L 356047.1674068766 471233.66205071297 L 354999.96985568 471233.66205071297 L 353952.7723044835 471233.66205071297 L 352905.5747532869 471233.66205071297 L 351858.37720209046 471233.66205071297 L 350811.17965089384 471233.66205071297 L 349763.98209969734 471233.66205071297 L 348716.7845485008 471233.66205071297 L 347669.5869973042 471233.66205071297 L 346622.3894461077 471233.66205071297 L 345575.1918949112 471233.66205071297 L 344527.9943437146 471233.66205071297 L 343480.7967925181 471233.66205071297 L 342433.59924132156 471233.66205071297 L 341386.40169012506 471233.66205071297 L 340339.2041389285 471233.66205071297 L 339292.0065877319 471233.66205071297 L 338244.80903653544 471233.66205071297 L 337197.6114853388 471233.66205071297 L 336150.4139341423 471233.66205071297 L 335103.2163829458 471233.66205071297 L 334056.0188317493 471233.66205071297 L 333008.8212805527 471233.66205071297 L 331961.62372935616 471233.66205071297 L 330914.42617815966 471233.66205071297 L 329867.2286269631 471233.66205071297 L 328820.0310757666 471233.66205071297 L 327772.83352457004 471233.66205071297 L 326725.63597337354 471233.66205071297 L 325678.4384221769 471233.66205071297 L 324631.24087098043 471233.66205071297 L 323584.0433197839 471233.66205071297 L 322536.8457685873 471233.66205071297 L 321489.6482173908 471233.66205071297 L 320442.45066619426 471233.66205071297 L 319395.2531149977 471233.66205071297 L 318348.0555638012 471233.66205071297 L 317300.85801260464 471233.66205071297 L 316253.66046140814 471233.66205071297 L 315206.4629102116 471233.66205071297 L 314159.265359015 471233.66205071297 L 313112.06780781853 471233.66205071297 L 312064.8702566219 471233.66205071297 L 311017.6727054255 471233.66205071297 L 309970.47515422886 471233.66205071297 L 308923.27760303236 471233.66205071297 L 307876.0800518358 471233.66205071297 L 306828.88250063924 471233.66205071297 L 305781.68494944274 471233.66205071297 L 304734.4873982462 471233.66205071297 L 303687.28984704963 471233.66205071297 L 302640.09229585313 471233.66205071297 L 301592.8947446565 471233.66205071297 L 300545.69719346 471233.66205071297 L 299498.4996422635 471233.66205071297 L 298451.30209106696 471233.66205071297 L 297404.10453987046 471233.66205071297 L 296356.9069886739 471233.66205071297 L 295309.7094374773 471233.66205071297 L 294262.5118862808 471233.66205071297 L 293215.31433508423 471233.66205071297 L 292168.11678388773 471233.66205071297 L 29