Bug 1068653 - Part 1 Add python dependencies for taskcluster mach commands r=gps
authorJames Lal <james@lightsofapollo.com>
Wed, 26 Nov 2014 10:11:28 -0800
changeset 225736 5edda558c6555e518d3579f89854b556c453c66a
parent 225735 e63a703bff4dc370241bba2744e97f6d4fc32a47
child 225737 f6a7135ba01290e9b982b14ac5238d3b340567c8
push id54672
push userryanvm@gmail.com
push dateMon, 26 Jan 2015 21:51:33 +0000
treeherdermozilla-inbound@c1cb74f492e1 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersgps
bugs1068653
milestone38.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1068653 - Part 1 Add python dependencies for taskcluster mach commands r=gps
python/README
python/pystache/.gitignore
python/pystache/.gitmodules
python/pystache/.travis.yml
python/pystache/HISTORY.md
python/pystache/LICENSE
python/pystache/MANIFEST.in
python/pystache/README.md
python/pystache/TODO.md
python/pystache/gh/images/logo_phillips.png
python/pystache/pystache/__init__.py
python/pystache/pystache/commands/__init__.py
python/pystache/pystache/commands/render.py
python/pystache/pystache/commands/test.py
python/pystache/pystache/common.py
python/pystache/pystache/context.py
python/pystache/pystache/defaults.py
python/pystache/pystache/init.py
python/pystache/pystache/loader.py
python/pystache/pystache/locator.py
python/pystache/pystache/parsed.py
python/pystache/pystache/parser.py
python/pystache/pystache/renderengine.py
python/pystache/pystache/renderer.py
python/pystache/pystache/specloader.py
python/pystache/pystache/template_spec.py
python/pystache/setup.py
python/pystache/setup_description.rst
python/pystache/test_pystache.py
python/pystache/tox.ini
python/pyyaml/CHANGES
python/pyyaml/LICENSE
python/pyyaml/PKG-INFO
python/pyyaml/README
python/pyyaml/examples/pygments-lexer/example.yaml
python/pyyaml/examples/pygments-lexer/yaml.py
python/pyyaml/examples/yaml-highlight/yaml_hl.cfg
python/pyyaml/examples/yaml-highlight/yaml_hl.py
python/pyyaml/ext/_yaml.c
python/pyyaml/ext/_yaml.h
python/pyyaml/ext/_yaml.pxd
python/pyyaml/ext/_yaml.pyx
python/pyyaml/lib/yaml/__init__.py
python/pyyaml/lib/yaml/composer.py
python/pyyaml/lib/yaml/constructor.py
python/pyyaml/lib/yaml/cyaml.py
python/pyyaml/lib/yaml/dumper.py
python/pyyaml/lib/yaml/emitter.py
python/pyyaml/lib/yaml/error.py
python/pyyaml/lib/yaml/events.py
python/pyyaml/lib/yaml/loader.py
python/pyyaml/lib/yaml/nodes.py
python/pyyaml/lib/yaml/parser.py
python/pyyaml/lib/yaml/reader.py
python/pyyaml/lib/yaml/representer.py
python/pyyaml/lib/yaml/resolver.py
python/pyyaml/lib/yaml/scanner.py
python/pyyaml/lib/yaml/serializer.py
python/pyyaml/lib/yaml/tokens.py
python/pyyaml/lib3/yaml/__init__.py
python/pyyaml/lib3/yaml/composer.py
python/pyyaml/lib3/yaml/constructor.py
python/pyyaml/lib3/yaml/cyaml.py
python/pyyaml/lib3/yaml/dumper.py
python/pyyaml/lib3/yaml/emitter.py
python/pyyaml/lib3/yaml/error.py
python/pyyaml/lib3/yaml/events.py
python/pyyaml/lib3/yaml/loader.py
python/pyyaml/lib3/yaml/nodes.py
python/pyyaml/lib3/yaml/parser.py
python/pyyaml/lib3/yaml/reader.py
python/pyyaml/lib3/yaml/representer.py
python/pyyaml/lib3/yaml/resolver.py
python/pyyaml/lib3/yaml/scanner.py
python/pyyaml/lib3/yaml/serializer.py
python/pyyaml/lib3/yaml/tokens.py
python/pyyaml/setup.cfg
python/pyyaml/setup.py
--- a/python/README
+++ b/python/README
@@ -7,8 +7,15 @@ go here.
 What should not go here:
 
 * Python that is not MPL-compatible (see other-licenses/)
 * Python that has good reason to remain close to its "owning" (Mozilla)
   module (e.g. it is only being consumed from there).
 
 Historical information can be found at
 https://bugzilla.mozilla.org/show_bug.cgi?id=775243
+
+## pyyaml | pystache
+
+Used in taskcluster related mach commands to update download from github
+and remove .git and tests.
+
+Then run tests in taskcluster/tests/
new file mode 100644
--- /dev/null
+++ b/python/pystache/.gitignore
@@ -0,0 +1,17 @@
+*.pyc
+.DS_Store
+# Tox support.  See: http://pypi.python.org/pypi/tox
+.tox
+# Our tox runs convert the doctests in *.rst files to Python 3 prior to
+# running tests.  Ignore these temporary files.
+*.temp2to3.rst
+# The setup.py "prep" command converts *.md to *.temp.rst (via *.temp.md).
+*.temp.md
+*.temp.rst
+# TextMate project file
+*.tmproj
+# Distribution-related folders and files.
+build
+dist
+MANIFEST
+pystache.egg-info
new file mode 100644
--- /dev/null
+++ b/python/pystache/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "ext/spec"]
+	path = ext/spec
+	url = http://github.com/mustache/spec.git
new file mode 100644
--- /dev/null
+++ b/python/pystache/.travis.yml
@@ -0,0 +1,14 @@
+language: python
+
+# Travis CI has no plans to support Jython and no longer supports Python 2.5.
+python:
+  - 2.6
+  - 2.7
+  - 3.2
+  - pypy
+
+script:
+  - python setup.py install
+  # Include the spec tests directory for Mustache spec tests and the
+  # project directory for doctests.
+  - pystache-test . ext/spec/specs
new file mode 100644
--- /dev/null
+++ b/python/pystache/HISTORY.md
@@ -0,0 +1,169 @@
+History
+=======
+
+**Note:** Official support for Python 2.4 will end with Pystache version 0.6.0.
+
+0.5.4 (2014-07-11)
+------------------
+
+-   Bugfix: made test with filenames OS agnostic (issue \#162).
+
+0.5.3 (2012-11-03)
+------------------
+
+-   Added ability to customize string coercion (e.g. to have None render as
+    `''`) (issue \#130).
+-   Added Renderer.render_name() to render a template by name (issue \#122).
+-   Added TemplateSpec.template_path to specify an absolute path to a
+    template (issue \#41).
+-   Added option of raising errors on missing tags/partials:
+    `Renderer(missing_tags='strict')` (issue \#110).
+-   Added support for finding and loading templates by file name in
+    addition to by template name (issue \#127). [xgecko]
+-   Added a `parse()` function that yields a printable, pre-compiled
+    parse tree.
+-   Added support for rendering pre-compiled templates.
+-   Added Python 3.3 to the list of supported versions.
+-   Added support for [PyPy](http://pypy.org/) (issue \#125).
+-   Added support for [Travis CI](http://travis-ci.org) (issue \#124).
+    [msabramo]
+-   Bugfix: `defaults.DELIMITERS` can now be changed at runtime (issue \#135).
+    [bennoleslie]
+-   Bugfix: exceptions raised from a property are no longer swallowed
+    when getting a key from a context stack (issue \#110).
+-   Bugfix: lambda section values can now return non-ascii, non-unicode
+    strings (issue \#118).
+-   Bugfix: allow `test_pystache.py` and `tox` to pass when run from a
+    downloaded sdist (i.e. without the spec test directory).
+-   Convert HISTORY and README files from reST to Markdown.
+-   More robust handling of byte strings in Python 3.
+-   Added Creative Commons license for David Phillips's logo.
+
+0.5.2 (2012-05-03)
+------------------
+
+-   Added support for dot notation and version 1.1.2 of the spec (issue
+    \#99). [rbp]
+-   Missing partials now render as empty string per latest version of
+    spec (issue \#115).
+-   Bugfix: falsey values now coerced to strings using str().
+-   Bugfix: lambda return values for sections no longer pushed onto
+    context stack (issue \#113).
+-   Bugfix: lists of lambdas for sections were not rendered (issue
+    \#114).
+
+0.5.1 (2012-04-24)
+------------------
+
+-   Added support for Python 3.1 and 3.2.
+-   Added tox support to test multiple Python versions.
+-   Added test script entry point: pystache-test.
+-   Added \_\_version\_\_ package attribute.
+-   Test harness now supports both YAML and JSON forms of Mustache spec.
+-   Test harness no longer requires nose.
+
+0.5.0 (2012-04-03)
+------------------
+
+This version represents a major rewrite and refactoring of the code base
+that also adds features and fixes many bugs. All functionality and
+nearly all unit tests have been preserved. However, some backwards
+incompatible changes to the API have been made.
+
+Below is a selection of some of the changes (not exhaustive).
+
+Highlights:
+
+-   Pystache now passes all tests in version 1.0.3 of the [Mustache
+    spec](https://github.com/mustache/spec). [pvande]
+-   Removed View class: it is no longer necessary to subclass from View
+    or from any other class to create a view.
+-   Replaced Template with Renderer class: template rendering behavior
+    can be modified via the Renderer constructor or by setting
+    attributes on a Renderer instance.
+-   Added TemplateSpec class: template rendering can be specified on a
+    per-view basis by subclassing from TemplateSpec.
+-   Introduced separation of concerns and removed circular dependencies
+    (e.g. between Template and View classes, cf. [issue
+    \#13](https://github.com/defunkt/pystache/issues/13)).
+-   Unicode now used consistently throughout the rendering process.
+-   Expanded test coverage: nosetests now runs doctests and \~105 test
+    cases from the Mustache spec (increasing the number of tests from 56
+    to \~315).
+-   Added a rudimentary benchmarking script to gauge performance while
+    refactoring.
+-   Extensive documentation added (e.g. docstrings).
+
+Other changes:
+
+-   Added a command-line interface. [vrde]
+-   The main rendering class now accepts a custom partial loader (e.g. a
+    dictionary) and a custom escape function.
+-   Non-ascii characters in str strings are now supported while
+    rendering.
+-   Added string encoding, file encoding, and errors options for
+    decoding to unicode.
+-   Removed the output encoding option.
+-   Removed the use of markupsafe.
+
+Bug fixes:
+
+-   Context values no longer processed as template strings.
+    [jakearchibald]
+-   Whitespace surrounding sections is no longer altered, per the spec.
+    [heliodor]
+-   Zeroes now render correctly when using PyPy. [alex]
+-   Multline comments now permitted. [fczuardi]
+-   Extensionless template files are now supported.
+-   Passing `**kwargs` to `Template()` no longer modifies the context.
+-   Passing `**kwargs` to `Template()` with no context no longer raises
+    an exception.
+
+0.4.1 (2012-03-25)
+------------------
+
+-   Added support for Python 2.4. [wangtz, jvantuyl]
+
+0.4.0 (2011-01-12)
+------------------
+
+-   Add support for nested contexts (within template and view)
+-   Add support for inverted lists
+-   Decoupled template loading
+
+0.3.1 (2010-05-07)
+------------------
+
+-   Fix package
+
+0.3.0 (2010-05-03)
+------------------
+
+-   View.template\_path can now hold a list of path
+-   Add {{& blah}} as an alias for {{{ blah }}}
+-   Higher Order Sections
+-   Inverted sections
+
+0.2.0 (2010-02-15)
+------------------
+
+-   Bugfix: Methods returning False or None are not rendered
+-   Bugfix: Don't render an empty string when a tag's value is 0.
+    [enaeseth]
+-   Add support for using non-callables as View attributes.
+    [joshthecoder]
+-   Allow using View instances as attributes. [joshthecoder]
+-   Support for Unicode and non-ASCII-encoded bytestring output.
+    [enaeseth]
+-   Template file encoding awareness. [enaeseth]
+
+0.1.1 (2009-11-13)
+------------------
+
+-   Ensure we're dealing with strings, always
+-   Tests can be run by executing the test file directly
+
+0.1.0 (2009-11-12)
+------------------
+
+-   First release
new file mode 100644
--- /dev/null
+++ b/python/pystache/LICENSE
@@ -0,0 +1,22 @@
+Copyright (C) 2012 Chris Jerdonek.  All rights reserved.
+
+Copyright (c) 2009 Chris Wanstrath
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
new file mode 100644
--- /dev/null
+++ b/python/pystache/MANIFEST.in
@@ -0,0 +1,13 @@
+include README.md
+include HISTORY.md
+include LICENSE
+include TODO.md
+include setup_description.rst
+include tox.ini
+include test_pystache.py
+# You cannot use package_data, for example, to include data files in a
+# source distribution when using Distribute.
+recursive-include pystache/tests *.mustache *.txt
+# We deliberately exclude the gh/ directory because it contains copies
+# of resources needed only for the web page hosted on GitHub (via the
+# gh-pages branch).
new file mode 100644
--- /dev/null
+++ b/python/pystache/README.md
@@ -0,0 +1,276 @@
+Pystache
+========
+
+<!-- Since PyPI rejects reST long descriptions that contain HTML, -->
+<!-- HTML comments must be removed when converting this file to reST. -->
+<!-- For more information on PyPI's behavior in this regard, see: -->
+<!-- http://docs.python.org/distutils/uploading.html#pypi-package-display -->
+<!-- The Pystache setup script strips 1-line HTML comments prior -->
+<!-- to converting to reST, so all HTML comments should be one line. -->
+<!-- -->
+<!-- We leave the leading brackets empty here.  Otherwise, unwanted -->
+<!-- caption text shows up in the reST version converted by pandoc. -->
+![](http://defunkt.github.com/pystache/images/logo_phillips.png "mustachioed, monocled snake by David Phillips")
+
+![](https://secure.travis-ci.org/defunkt/pystache.png "Travis CI current build status")
+
+[Pystache](http://defunkt.github.com/pystache) is a Python
+implementation of [Mustache](http://mustache.github.com/). Mustache is a
+framework-agnostic, logic-free templating system inspired by
+[ctemplate](http://code.google.com/p/google-ctemplate/) and
+[et](http://www.ivan.fomichev.name/2008/05/erlang-template-engine-prototype.html).
+Like ctemplate, Mustache "emphasizes separating logic from presentation:
+it is impossible to embed application logic in this template language."
+
+The [mustache(5)](http://mustache.github.com/mustache.5.html) man page
+provides a good introduction to Mustache's syntax. For a more complete
+(and more current) description of Mustache's behavior, see the official
+[Mustache spec](https://github.com/mustache/spec).
+
+Pystache is [semantically versioned](http://semver.org) and can be found
+on [PyPI](http://pypi.python.org/pypi/pystache). This version of
+Pystache passes all tests in [version
+1.1.2](https://github.com/mustache/spec/tree/v1.1.2) of the spec.
+
+
+Requirements
+------------
+
+Pystache is tested with--
+
+-   Python 2.4 (requires simplejson [version
+    2.0.9](http://pypi.python.org/pypi/simplejson/2.0.9) or earlier)
+-   Python 2.5 (requires
+    [simplejson](http://pypi.python.org/pypi/simplejson/))
+-   Python 2.6
+-   Python 2.7
+-   Python 3.1
+-   Python 3.2
+-   Python 3.3
+-   [PyPy](http://pypy.org/)
+
+[Distribute](http://packages.python.org/distribute/) (the setuptools fork)
+is recommended over [setuptools](http://pypi.python.org/pypi/setuptools),
+and is required in some cases (e.g. for Python 3 support).
+If you use [pip](http://www.pip-installer.org/), you probably already satisfy
+this requirement.
+
+JSON support is needed only for the command-line interface and to run
+the spec tests. We require simplejson for earlier versions of Python
+since Python's [json](http://docs.python.org/library/json.html) module
+was added in Python 2.6.
+
+For Python 2.4 we require an earlier version of simplejson since
+simplejson stopped officially supporting Python 2.4 in simplejson
+version 2.1.0. Earlier versions of simplejson can be installed manually,
+as follows:
+
+    pip install 'simplejson<2.1.0'
+
+Official support for Python 2.4 will end with Pystache version 0.6.0.
+
+Install It
+----------
+
+    pip install pystache
+
+And test it--
+
+    pystache-test
+
+To install and test from source (e.g. from GitHub), see the Develop
+section.
+
+Use It
+------
+
+    >>> import pystache
+    >>> print pystache.render('Hi {{person}}!', {'person': 'Mom'})
+    Hi Mom!
+
+You can also create dedicated view classes to hold your view logic.
+
+Here's your view class (in .../examples/readme.py):
+
+    class SayHello(object):
+        def to(self):
+            return "Pizza"
+
+Instantiating like so:
+
+    >>> from pystache.tests.examples.readme import SayHello
+    >>> hello = SayHello()
+
+Then your template, say\_hello.mustache (by default in the same
+directory as your class definition):
+
+    Hello, {{to}}!
+
+Pull it together:
+
+    >>> renderer = pystache.Renderer()
+    >>> print renderer.render(hello)
+    Hello, Pizza!
+
+For greater control over rendering (e.g. to specify a custom template
+directory), use the `Renderer` class like above. One can pass attributes
+to the Renderer class constructor or set them on a Renderer instance. To
+customize template loading on a per-view basis, subclass `TemplateSpec`.
+See the docstrings of the
+[Renderer](https://github.com/defunkt/pystache/blob/master/pystache/renderer.py)
+class and
+[TemplateSpec](https://github.com/defunkt/pystache/blob/master/pystache/template_spec.py)
+class for more information.
+
+You can also pre-parse a template:
+
+    >>> parsed = pystache.parse(u"Hey {{#who}}{{.}}!{{/who}}")
+    >>> print parsed
+    [u'Hey ', _SectionNode(key=u'who', index_begin=12, index_end=18, parsed=[_EscapeNode(key=u'.'), u'!'])]
+
+And then:
+
+    >>> print renderer.render(parsed, {'who': 'Pops'})
+    Hey Pops!
+    >>> print renderer.render(parsed, {'who': 'you'})
+    Hey you!
+
+Python 3
+--------
+
+Pystache has supported Python 3 since version 0.5.1. Pystache behaves
+slightly differently between Python 2 and 3, as follows:
+
+-   In Python 2, the default html-escape function `cgi.escape()` does
+    not escape single quotes.  In Python 3, the default escape function
+    `html.escape()` does escape single quotes.
+-   In both Python 2 and 3, the string and file encodings default to
+    `sys.getdefaultencoding()`. However, this function can return
+    different values under Python 2 and 3, even when run from the same
+    system. Check your own system for the behavior on your system, or do
+    not rely on the defaults by passing in the encodings explicitly
+    (e.g. to the `Renderer` class).
+
+Unicode
+-------
+
+This section describes how Pystache handles unicode, strings, and
+encodings.
+
+Internally, Pystache uses [only unicode
+strings](http://docs.python.org/howto/unicode.html#tips-for-writing-unicode-aware-programs)
+(`str` in Python 3 and `unicode` in Python 2). For input, Pystache
+accepts both unicode strings and byte strings (`bytes` in Python 3 and
+`str` in Python 2). For output, Pystache's template rendering methods
+return only unicode.
+
+Pystache's `Renderer` class supports a number of attributes to control
+how Pystache converts byte strings to unicode on input. These include
+the `file_encoding`, `string_encoding`, and `decode_errors` attributes.
+
+The `file_encoding` attribute is the encoding the renderer uses to
+convert to unicode any files read from the file system. Similarly,
+`string_encoding` is the encoding the renderer uses to convert any other
+byte strings encountered during the rendering process into unicode (e.g.
+context values that are encoded byte strings).
+
+The `decode_errors` attribute is what the renderer passes as the
+`errors` argument to Python's built-in unicode-decoding function
+(`str()` in Python 3 and `unicode()` in Python 2). The valid values for
+this argument are `strict`, `ignore`, and `replace`.
+
+Each of these attributes can be set via the `Renderer` class's
+constructor using a keyword argument of the same name. See the Renderer
+class's docstrings for further details. In addition, the `file_encoding`
+attribute can be controlled on a per-view basis by subclassing the
+`TemplateSpec` class. When not specified explicitly, these attributes
+default to values set in Pystache's `defaults` module.
+
+Develop
+-------
+
+To test from a source distribution (without installing)--
+
+    python test_pystache.py
+
+To test Pystache with multiple versions of Python (with a single
+command!), you can use [tox](http://pypi.python.org/pypi/tox):
+
+    pip install 'virtualenv<1.8'  # Version 1.8 dropped support for Python 2.4.
+    pip install 'tox<1.4'  # Version 1.4 dropped support for Python 2.4.
+    tox
+
+If you do not have all Python versions listed in `tox.ini`--
+
+    tox -e py26,py32  # for example
+
+The source distribution tests also include doctests and tests from the
+Mustache spec. To include tests from the Mustache spec in your test
+runs:
+
+    git submodule init
+    git submodule update
+
+The test harness parses the spec's (more human-readable) yaml files if
+[PyYAML](http://pypi.python.org/pypi/PyYAML) is present. Otherwise, it
+parses the json files. To install PyYAML--
+
+    pip install pyyaml
+
+To run a subset of the tests, you can use
+[nose](http://somethingaboutorange.com/mrl/projects/nose/0.11.1/testing.html):
+
+    pip install nose
+    nosetests --tests pystache/tests/test_context.py:GetValueTests.test_dictionary__key_present
+
+### Using Python 3 with Pystache from source
+
+Pystache is written in Python 2 and must be converted to Python 3 prior to
+using it with Python 3.  The installation process (and tox) do this
+automatically.
+
+To convert the code to Python 3 manually (while using Python 3)--
+
+    python setup.py build
+
+This writes the converted code to a subdirectory called `build`.
+By design, Python 3 builds
+[cannot](https://bitbucket.org/tarek/distribute/issue/292/allow-use_2to3-with-python-2)
+be created from Python 2.
+
+To convert the code without using setup.py, you can use
+[2to3](http://docs.python.org/library/2to3.html) as follows (two steps)--
+
+    2to3 --write --nobackups --no-diffs --doctests_only pystache
+    2to3 --write --nobackups --no-diffs pystache
+
+This converts the code (and doctests) in place.
+
+To `import pystache` from a source distribution while using Python 3, be
+sure that you are importing from a directory containing a converted
+version of the code (e.g. from the `build` directory after converting),
+and not from the original (unconverted) source directory.  Otherwise, you will
+get a syntax error.  You can help prevent this by not running the Python
+IDE from the project directory when importing Pystache while using Python 3.
+
+
+Mailing List
+------------
+
+There is a [mailing list](http://librelist.com/browser/pystache/). Note
+that there is a bit of a delay between posting a message and seeing it
+appear in the mailing list archive.
+
+Credits
+-------
+
+    >>> context = { 'author': 'Chris Wanstrath', 'maintainer': 'Chris Jerdonek' }
+    >>> print pystache.render("Author: {{author}}\nMaintainer: {{maintainer}}", context)
+    Author: Chris Wanstrath
+    Maintainer: Chris Jerdonek
+
+Pystache logo by [David Phillips](http://davidphillips.us/) is licensed
+under a [Creative Commons Attribution-ShareAlike 3.0 Unported
+License](http://creativecommons.org/licenses/by-sa/3.0/deed.en_US).
+![](http://i.creativecommons.org/l/by-sa/3.0/88x31.png "Creative
+Commons Attribution-ShareAlike 3.0 Unported License")
new file mode 100644
--- /dev/null
+++ b/python/pystache/TODO.md
@@ -0,0 +1,16 @@
+TODO
+====
+
+In development branch:
+
+* Figure out a way to suppress center alignment of images in reST output.
+* Add a unit test for the change made in 7ea8e7180c41.  This is with regard
+  to not requiring spec tests when running tests from a downloaded sdist.
+* End support for Python 2.4.
+* Add Python 3.3 to tox file (after deprecating 2.4).
+* Turn the benchmarking script at pystache/tests/benchmark.py into a command
+  in pystache/commands, or make it a subcommand of one of the existing
+  commands (i.e. using a command argument).
+* Provide support for logging in at least one of the commands.
+* Make sure command parsing to pystache-test doesn't break with Python 2.4 and earlier.
+* Combine pystache-test with the main command.
new file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..7491901366383243cbb332ad53377652e5eaf737
GIT binary patch
literal 173595
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%0Amp0D;JCtO
zi$`sdOD!!bJ{4fl1aQN*F(j)RsiYej8Q`j@S_FE@A;(2S4rN!SrpPF^)+$EcC<#y<
z9wOTKILWLQ$S}xhfrL{_%;HlEtVuqOkwrLjgqv~FCL32b`_OoQI+~x>JwUW`E9RKy
zsi~;um@=4S;t@|$;?LV2w1EYb$KgG-u1b%t9i!!|LpttMR8Nf~gclIT3GO~+&Ak>I
zi6~<iE3E^dYGi<)$J(WSbuu7~_s4nYTvU#%`#QQDLiN6LGDi_zoeO?--8J96VJ4-N
zLj~fqnT<EV{8=uw%ruDa4b;IRTUuJEDeJh$2sY{K0m6@pUuQq5ablhut8PFY2qmWt
z=?Gev54Uk%(BOD+mTF6K<Op<GAwan-uHU>RqN=!G&q9y99L9(Vpz{=^hn`+&F|tmi
zJ50IAha8x+{oPUeJ9me&C6fOID3ykZ1|L+<HD@kScaM@|QU{9_rp19(vE?G+X+H8T
zS?rjDsh$86e*z$0p!W8H97v79)HW-xABo4GwLN@;XPQFdDwlJ#<;gL@@JH#z7pny+
zb)s0Fdj{Z)XLRcfCox7w+xEGMCpMrQTOFtJ$RaWTpJ-`CeJJ`!jK(i)eB{DRJZ(hc
zBCD6}|KR`n+8guvrs!a4<cC`)pADei0P|TYuN<ldqJ4on{%vk<7C;;{^H*g={FJvB
zo2f~%!BGKjvD9K^kuzho@|<V7Bq5m>j?7ZBC@T@f7wE7My7n@UDhoUsDMb{|6RdTv
zN6ES|O3JQ`42-lR1B?`fPJnubQw()#qoZ5T!N?;mxny(`P^2Y;#I=qVbc8^EFHzra
zqV=BAsIj$nXbYgW3`UkiCr(Th0PE3?Zp$AO&-KtBeDVBE)Y@94LSa0R+k>f@ncGJ{
z_QrEe!Oj8ZSOjptk&%RM``0mg>7_&+bBu2ta#NJ32~YB9AutP2&5}m=y2!DPILLs0
zOlAfsH&n@{B@WuMGGEdZMJstReLic@1~(_Y=9M3K&GE;+c=v1q@#mVv(g5>@)Ux0E
z0F1~>QtkAKOhEu=j*@Up0BtNi*ok#G?r5na(iT7bz}s7W>gdU&6Wn<UPu6p&C_uYK
zP|VtBK$$K9<}G5Y2!@`C)9z6j3sA!NGD{Z7DLY>n7$13!%m_EvGk_zDlD_#D`y1#$
zExf0lTZy)9R?Hqn(}hQ<p&H{DtDOm>87Q=TNGdzFG*MGi6BUa^%IEVE$Qi^Z8cxlC
zK9StQVD9M`!g;WCJYNuG=)Zp!P+JGG;~nwd72CHLh1QNpEM^h4btcr=rJOzX7(ec*
zvUAQuD`T9Qcx=fnc0n_3Zn7GL$OiGm*d`14wntub<)6ImHJ4m_-%M-dhYG}Jij6l4
zpwAN^pAAyW-tOb7D8rgSf$W$-$o{MVpjcc?Dw37U)V_+2H`Pr((9z*QQMubL9ogkm
zOU@Z*Kje0AiT0tKB&pD#=u#vAy_Qc>mYsHr=G1dTmmVE8xgmPskz}XX2Mojrb@7gi
zoaiL=7?eXZPm=*(HXVugv2}ym0OruwQ8<M=hTHRbs#00(!-IeDC=Obvz1;vg*f;|$
z7m@jMWdNT@cCm+1*UK*acgFpzm5}=P_;T@RZONs~-PYcNazwi}NA&cQN_#IfS82&n
zL`#p-?AmJG=SHHvb!_rtW;b@(|0Y(rnepOhN~fLlvX6f7JvV=&xv4#v44}<+fBCaP
zH*bLXES6gK#nLBp+f0DE+`P;vEE(Gc<E#a+(v_)N3nWtpsFg?2e(unT3q9H(j?Jaj
z&{NGUzBsd>*-0a2`4oypVW1jQp%w{%6pKciFFTDO(bV!DZ4pNUV`DX0^c)+}fL>5z
z%)rQ-oAm&Png*td8Gq*KCL}OzoKQ5C2N-%fk}THhW+VyZejO7{)Ev_%A5}Uy^mQr4
zEKu(W&Ys8C<|vzK5l0OQ$eE4f^I~=lAZI}4&l7+Q0Oq1713xwfa7ZlJDwT?qTEZ|)
z7X#cM_komyjh};`pI?uq8kTF;KTxKP>&tY)nM$UKtw9y+jtQ;78aCtR`=p@njBgHN
z|9?JL+;Zaa7kuW;SN{LsTiA2d=uEQkXB&tg4p47^`7A4f&ZN9DQ+{)|(7GoH2RnLw
z9NLf2NGXtD2aud20Qgl)eL8oUPY;d8v}I=~gR7W@=K$tKXMFYwW^;zIWXhHKIclmz
zlmVD$lvSc4U}m!b=g^HMD=suCNkhi62Bt6>>(oY^$6yOMT>5t#>804L78~3r!woaB
z8m_@bP0~!8J?&}ki5~SPV+8gnef_Zqm7^xCK~`x_r4?r545VPg08yOBb<CO>v~3OD
zX7S9d>%llqD~)_q6Q_^mg~8V1`SsWt126~hkByDdAO3rkR-ag-1&a(Qr^7g`ATmBh
zR{CK*V`m_5YwiB+*)MqQ=iYGnCw>JcZXabFE_r1pfWE=Z8>eZ3_`xWG&eVjVT)u5<
zsa#q)Tp6T+{)C1FGi?!|d*w2Z&RygQKog8H@6g7<kXl;>WA$Px3lKrv?cAbAtvLn*
zb<B=I%b9_YIs`jUMg^jFXUXqZAt&fA-7OZ0C;J4LkpTI;0%;UC!vQJZOF#u~;fMf@
zO3gWy6*E>=jJvg6B_R$EE0&1`L0S<J-RoHc5?mcBrGegaXx!9z^2c{js@#$m@g7?w
zkOLqA<jlqa;u8UR{Rtq;^2)w!inh#B|2%ACWB_MCx0ycn4UdQX1D4N61CKo*7UYpJ
zT5+^-uyEEnyI=UkUxPG0SIc2=sH|Lm^52~IqBs4^1?Rtgy)6+<7O0<3#m@#aZxlgi
zM-kNXw{Hn5w0loNH35(p^!W6`1s-)YD|rR-270r1*2E#dxKNAAs(2~Tp*iQIt?QiY
zlGN05%M27?QD2Y(>acjCwYws!CIK}!B{Wo0%|3HF^k9ZWO)nZ6P>fx=H$qkXOmw#>
zo`)M=B#>t<8==<r<xq!My*_K=+`UQKA(JK^%IE+`fOwm9_h17+0vPc*u`iq@5eD*!
ze#rcH<=ZEkwK|b*ZUa0d9cJGAFE(cBwjR$i46fr1m$yCTh|g`5RvxR4bZU{wVsW|4
z*0B~i{r5X!!ODL+^Ylyq{*sH{drw>I+}gng@J8{o0p`y+dF5~wK^2%3pXwV+=m>J@
z?4>?+7E}|7tD9@^@A^@IqA$)z0t92}h;U+uTJnk&b4xl1_|Q;9xuHaWazX`2Fn%Hd
zc(BQ*-bzG+BMEugNV4$uR)r+JL*i(lT@^CX2;}N-E{dLV;!ah8egzYJvTCFqGfHUZ
zXs4I8+$<Io$UjO$9~mJttw?v9%CITl){Q-CYcoI&Fa;>$vtc%lje)$LrPhOaJ+M#o
zy|5)0TYACuI4WT0i|tJZNMk>2;AZf~h9e2P=(=+&82kt=S!wK-9EHvj42q@QU5o$i
z=v6QH&ZRGZ|Ie2#Ibmq3Al)c_Hkf&%2s#Ujppx-rI-Xvf@n}Vhn~sdLy9sgEhenk1
zC6E=$L{H^$sk2Fdbw)`6HNnUq-x<-m9W~k2+0yLNu`Bb`+N_>$SX@80MX=oAh+IJl
zbNNI9E}Sa>XLM=8C!KE*`-S<UO{yR|G-!rnfSEgbG7l_#7zPcGIzYWx)a~#Z;IZGu
zL^U5}^?(gHb2w`}ma>XZEiG-bc?$YC0MV9JAYXu)bFs7DH@-J8um86m$ZeY<GjD9z
zhkEym4eIi5Aod6UGML-NRxCueRdW00gz|+^X~~p}w|1_~?_T!3V~#%Sdlz5u?q41%
z06$P*e?AvK8({uCmschO>Hveeoju#ewwa_sJ6H+l1<|IbF&i`!OJ+_EPvmiFE;>i`
zw+ukKvp=FSpld#&-6fZrH#l@`Mu3n2&JOWp&D$edoAYF6X+|IJbF!kNHF4Q$UsOQN
zL!)H?myU{s%LeibPlK1^>3jwJv6gA#$fOr~&FYO|fsqcFs#+L=YDO?|1LTla0FnSz
zNGjL>==Ft8KF?B0{g1iccV4fV*SGg`F_Zxr*VjLuzXyC9HrCYfH-vu9jvH)vKm0ly
z9*f0i5)B-4?8@&PbMy=T<HDC*{hP%{9#fhsK+hI=Wu`&=*--p!fcbN{2)e(^Qz?RW
z&t0<faW@&Kdq-CG$75rOV647G$Vx3%5=aca+@+?RlXgsk@eWlmZ79~cEiPrpV(Jl(
zYXY!{WBMn=W2&J5@@94aIdfDSK1P$}^V)ghX*QiVMNFQsBZnT>lnhhMC^il$1u_gk
z9gl&ZTqXzVC|~YiP4sXE$T6eC0P^+}$N_{5<ZKzN2Xb52t_SyeAg>2>`*XLoa%pRH
zLgHRawkdMlLjChi1nm4gw&o6iw*mc$hok;4{l!;4e!>akS@?l~_e=r!!PLzg?fi|?
zVU<^A0<@=61YOX*X6OAfw$^le#sbBo#F61!Pa@b#fQ^73^0SHZCdV$d6&*csK9RRq
ztBC+*0Yc5HAxJ<Gb$AIC0leZdWdvh+ViCy4a^B}CJl!Sj8PDlq!rB}SM+^1?X^PE7
z6{dyE5-2)7i`4K63?&8w&*^|FjslSR<AIV?xcG_lxE+hdP+#^Lj9eaBSl({{x$QQw
z!Lt6mEs5BjpY<6n^@UH*i)iV}gu3Sw{qBw=1#<g-_Vd}#Yya)-ec=6ImJZnnw+{^s
zEr0vl-+s&Qe)qd81&fcT3*OTK>H}rrGXdfU0`iR+ppDbCfqN=Ue1Gw`lL7T5N1V2M
zEJ0<Hymb1zw(P-KxLL66d|up~M3$B=Ksn=(FGEcf(C!)$;3m)&L|x{mj5*W>VAWHO
z@tgw!kP<hN=YgT@GC|=J-J)m~lJ>bk&EkY^F4G&)6qHj%Pyjnx^@}=L5ye%swPVNy
zGSBgxcpRFG0@lcN(QnTVNDvChQD|iAA-h#rBd-VS`pxeAv`-VUbo=Cr#jUkHN%La3
z5PRy`L>tz{)VDhr=QC$^ULO&_*V(Vji-B!j#KwT$+uQrv4}9PQSAOklU;EBXfcL@H
z%@2m;(qQI|(~L9ogFQZOZ<i;!E}JbzUQ_#8Dwj@WFi&*m$yUL%kxdRDuLiO7cLPYn
znqb{dLfNW5)JM3Lpx#JE<b0Kk>rr<g9`CEy2_lC^5T516QX@yS?#P(hCw8aQY9=FH
z>fPRW>m2@V%BzMU_{?D|gboh*1pAEZr4*wFX~>*(M?LSBO<=0+<A5B1$c4^&Ag_0m
z$YOCe6bnv5Bg0z5-_PIQ{@f8rHm9BFh!tYd>aeoG6O|#q<`h*#?%f&Eo}Ceu2EEi<
zZi6{*9LHcglUVP!qXlr}!MFYV=Rg0(Pk!=~J74+AS8knYX=OIaD+dd>52tS40P|VO
z%%>}_Ot<K{zxx!L7W^(0V4l^W8R^ksn?nH@g5rh=tZ|9F4s23D1<e%~GNa=5z>zXb
zxoSqQImk2j9V&Wp8eblS$V(RhTTG~!SE+r)g6Z~@iG{w3;YCa<8ifG(d-@c(W4JSb
zd|*g{v`je+l%HJs#vScVuj%&ws(M{yy*%=OFP^JyoJP)!ydKCW0`Y`GYHN?wT+~E0
zE)Di8S!bdX-ZSd1z<YS~A>?4a%3xa3-QtL+MZA{<Dp1UCfmc2=v~cm_pLBFBSVt#_
zqopH{y}!S&)cnvNcP@JHfyZC6W5>>m8Q2-z@h<~9vveEK?JiOPy6zY)TzB1d|8m}W
z=e<}gXwkuB=ZB)5|8Oz&1~YFk^C<)Tf#~Uz)y#3ZyKB{5qrK}tkdZpMo+k+~$4pOT
zs>BwMI{;OeIs_~C%YwBF#vO{s4OL-NRLndM9ct1e*+}Q5KqD^;+TD~-luzAJ#Z~}s
zl2Ol_)wV%&f5I;gD<V2XvwGMwh7-34lpGvVk_?Kch~{mbqv8j!IKXo*2OejYRP+1a
z_ySy?sgc(Mxt+CQ19`p>P<Kxv_lf6)!qn5=p`vyt`YmHjX}dm;H3gX8qyZi=HXdpP
zC7p06?-R7`?&v%2+8=%W|66(T$pdvycjG<x+|zmU%{RZ|uDkAfSAT#1+3b2@z~;Xr
zK;4emWxFEl=XgJZgM(+k?QL&+-}k@&{hMZ*oi`eW4&KRaK<eQKblZ<S*_D1Ow@u~p
z-tMz>(Wws&>+lX9O57*@H<~E7L=Z+2$N^+w;8H8PF~uF-S}Y@Nt7XBuQLxLXq{T4O
zn!0Yygs#0uF!jWVrB*Hh(bK~&bQTMAa<Fl*aAcW-rT3TgG<oryO+_WC;Bf`b=yAWf
zU8-Q(+NnEE_54u0#ozx%fLqWyj*-j#(XJJ2+z`a9mNQSnFrdzPHClFbB3~a13Kkbn
zr$<84f!DqMRM5Z;Fkh;-`5NHoifx|Q7U*rhbv`>VaKh&=yX-gX1#sJcCv2ymetO?6
zx7_ki>(;G1=f)dvT-n{-eH$-8yxA@r26T4h0OaxB0qFP~#Nu${x4!kQqw2pCd&^zf
z*X>iiezM=o1NlBr_3~tIo6PUJ0p`zPiDkN9ipkzK6QI6g$%{7)JF%GwDYo4S^m13~
z7@iI`m$@ErvOp7$)jY9CY(pqm1`71tSb#WkTe5<wXVpYuIpiVZ3YHs7+n{X2_f$70
zz#OtmUKcoFJ46a2{%zI(UI3-_R3Q|0#-0W0JlHw9L=(Lz_;?O+U8g|FhwgW%JYtHS
zwvQa+@)*eLnYawU5{CtgmIt(8q52VFk->iOCV@S#^Tcy?MNqM|hz&T82G=9;`9d!j
zTbBm(E(_G>>)UXBerV{}FJFH7o$G)5+qrxDUcKo}Z+hbQzyJNkXPtG{M;XxV4pMf)
z@I)hQY;^>n>*gr`3t#xcR|I=^rwZQF0qVUyW~$fCG>A|4x7T3i4Q4*+FUY}S=6n00
zbapHo33Ki1c*;H8CcEWy15dK_(3&?1$)wFsWcIh5=#KEL5Y|M&<agyMTP+BtU!a~&
zk1|EU#(h;F9d!Zji3Dmebrk&y8W_QJ0nAnH4aYaPvki%T>U9D7*yVY1RQG2kKo_Hy
zRVs?LW8d*SodRHgd%HtBwiqC1jhyX=^+3*Gj@vyypw-7kGD;RYJ&s5q^`Ib&92n^G
zS>33FMG4Wl_NhZ_<Q*EYu`LnX(PHb?mwT++y7lGxdTSXTUiHscU;X`|?c4Jc0V}pl
zCKLbQ2S2#s$}6wDoEITm@826cXLkz#eRz2IC7=A{Coh@|cu$srPnES#mzmG>Z(^#q
zHJEvWna^5gj#KNr)!$95sqnoNOTT%N#7g@n<q9dfc>zKgIH4l}&|N9+(9@owp7}nV
zInSq)=6KY0ltAh3j0{Q%1dtC2Q1^0)ERX^W13g5dm@~tHp`QcX0i4q0=P36~tVg_s
z+ItSE1zY5pW}*243ESI=);~zJ;o%ku<Q$p>R$4EuOvK2GEdiZ*ZY04QMNY^liB4w3
zYhVGwN0iq`3}EbS;(ncTO_7R=ot|ds4B(Jkj<DExx84?7V9snkw{z#Y-@NRyTdE@?
z-oCzLU;gr!e|YJom%h0k%=ZT9+%1aF1c3g-AO7&`8#it&?hm}DBcV*@F%4$k0P_Yj
zpJ8T>ZQ;VxZy(moyd?e|lOx6iKmaI0Rc!3v?NUd(V0allSqOT!0P2NDWax;6IXbe{
zp#_3{&m9dZ-ycvsH$!pJqp|?<GMp*}GcJy8(wHL8dxKhDQ$a~C0DUm^yl(dgP<PHz
zV4l_5bwSG>-0<}HqeOT7ym=fWw_EgWAh-2q0AAO;8l8StEdA@y;PHg;wBxm!Thw$S
zEHZdK+@8_W3l^k>i`3=325~&RjpTS!d7hd0k(#kHkT0-g7uL?_i4UO%{`W0g-uUCI
zufBF~?3}loZ@&3kr=EK1r|abwdl&}S1&AoMD}tem&!*?YAO7$MXG&UWF!KhOH<<Y>
zVCE;UdHsE*j3-&}5Ug*G8X<@F_+AWf*y&Qcm!pMUJ~erca&dsQ3ZQN-B-A9pc8R#$
zT!UpXB(GOZAFeLQQg6|xnw|_1@+2TNt3qkrzPhfhSv@EF%W-{CGhj3UjaC(i`#Lxa
zAm7@mbo0#{iEjITlVIcH89BfWAP$|JL5+crfqe1u8lCy#L>5%>zTi~pUZ4uC$a(=I
z2RrBPRBT}Cn2rQMN8;n6<?3@}Kqsx4cj|w;G=ML)z<Zu0uK@5Dh&R+N79idR@4ov>
z4}9Yr$M5gEcFQfdT;JB#cF#l%y?zh|J`<K(u&rIY_S1LXdFR}j(#;#pyaDFVduDz(
zK^;HxIqi$boYr{{BIJ4q!BqkT2KtD$KP_0f0P~YNeL8!YPxIjA7WWDDII(Qrq4sh_
z3%W8gJ~uNKkuw^TBdERGFBoyNN85c@0A(z-c#dC{3|*rhfEx`-HTIillv73KwdeuP
zV8tCR3REGj;5q;)E)Vt+{p247+ssc4<hE<29>{x^1a!)a63O`Snz^F3HP)1zB8L|j
z)Yjapim`EIY?@iE`$Ic#?J^VX^Loqb0%r#q_sS9aJQqX(>K)<<+XcvCn<Id{6Pq~y
z$W1r>Xn4z(;=b7V+_`gWU;5IQt`O(Tc2sXYI}ZXivJ-L(yITaX7e4WcPyE@TbhI1{
zwtgr;yur*H%zVZqm4hX>@cEXWGrop`WnWa4BieRuBU&TC_}$0mXwlp(bu~HUhY8i@
zWMmOiW&q?IDi$1?j|kVrIr6HQ0xiHC{|-hpTytr=VCzk7k&L31>WpIsMM$95gPk3n
zLoO%4YsTK$t|W|D%Pul0QM+1D_(U83x4)7V&)F)0900|6<Sec5V2O!<{MBzsXyFmc
ztKQTmShm>mO^S`<XkqaRRrK_<B{HjZeU@K3yHxin+VfW&Cl(}E?Q2DE@@RyVzdWmT
zb>F%y|8?Q?DTt$xJhcdrZ5ANjD&Ax}&IiHr`~U3EKDfW{+r<}Oy!E{E&b!tw>e_L;
z6R~raTQ+Xo_}<%YyRB!oGxNhOuQZr>gPA`oG;^F*t$Nju2mFM#_a)R3di0i+S-Ri|
zpGt{K3z`$^aw76-5mnnf8W!MQLN1G|vr{0IAj}0+8iSz)buWvvPa)sj4akK9M$02)
z&771TZeO`%<d`$DwH7JW)@!;@3KkC*KDS+6maZ0Y+c$6YsXStU9Gb8V<n~|*8_1We
z3h0_YO%%h{o_Db9W&!3IEuA#Ct3WTjw`|_nHdz7!pabXu>PUL@1Ufe@Qk|b@7D8G<
znbc)$`e26iM_@o5g-HN9x-|vJ78%e5*aFbU9(?dGcHDmZk^5rjINf;Tjo)l(X}Qk^
zbUSX>*3NA}M=?}9_QSKCnKv}^#%b0u^O=-hW=b>1`DKgF-L{9ad(NGor}LI%sU`1G
zDRyWy<4{+vN=1Qe*`W%#BLVgHWNBlQM_UF08Z3uYb_Gyw7@?p7unehE4QP8Qq(`?_
zsAWzlweE6F6*h5_!-QkS#_KcGM{9b#S!9Zv8SQ)tHTZ+M-}+_2`Zp;c2O!l0xjpL5
zE_g0KCZP9yB%$76HDV5q6=?71DMB;Q{CUbj1L*||6@2VK-VSknx8SeYqVlxE@d6N+
z>5Sq&ZGzn|JW0H_tYYI83(O<E={Od0tqs76eNVM)06IVxm&MlPy8gzmfBk>&k2G|3
zb=5xbfe*Z^eiWUpopT~2TNNR<0MMU!;)!eSy6djF4b6OdB&-4E&r@c8xC^0syAEFL
zj_#v>*w*Y(?7I|+Z_us)ns1Go5i~UxQGP%$?agD<w@t9TqEGik8M=RvsCP?+f-PY>
zIAVA#p>-n=mjm)Li2`BI3>oH5N&s_UWt_+kP%W!Kiix!30=5omXDm?H{pePQ9$Ra=
zI{{3151fElFRd`3FI`om*Iu2_NL4)#@?NA~u4NM}GGjHR;Uj$!UUvX>Q>#vG6m&b+
ztcsuToflhGq9bAj0PuOi?ETdW%mYhq3CJvDj{b2b%+STYXT%OjaMkQQj~0A!T@%0@
zi`14a?;2dYcJAI-IiKGD{`aq4xNzYQ_th1O+wixx2V02E|Kb<F_}-~9^QkiS17Yhk
z&CCy^@Y!JI&tqo3ua#aL;+}Kig%|$gnl)>-tyr-lIrY?2@4e)bOKuWBu5-l?(48qz
z-`9QkM}PcDAN*Vhw+f^T0W~Ejrn!P`y9m-MBidE~T98nW0O1pRJW84!dTM}Z=<%xb
zp#zu&=F?7rU>j>OwRT16V2Q|*C;*UP-macp#Ckb~NkDqRu;Bs#RwpVBmvxqlxX-VD
zO7z>GKeJ8W&Lp2mBVV{AptoHk_I<w6#9?)WG{VEDA?38TDTIYX#?f7;uqEO$?vH<E
z@wKSJzA`$+5n%6T)$=s15n!HEfX=L3&#NBC%00cg(6KSk6Qke&?97;9Bh)M%41N2p
zx4vzE!~xq!KJt-2t(RFQa<<g7^M@XK=wo7Qo35-fU9g@mU>^(+pKbC=1I%Y3GoR>7
zB7Qg>FMHX`zWbH0eC3W!n>M{wfKCq%w?{@sPFcTx{ReKo`R4yV^UO1Uf7@-h9XS(B
zeKPl1vE(IBk9qmwM4)VMEuwZWl(RG=0nTLs<O70*55+DmX>q8(98>>jOkpXY!p1~)
zgQDfXB!GV%H1vEdnJ$=hq6?p%wj=_u9ZgelI~aRQ!L;~$8tkQ&(KA-Y-~BhykN>e{
zoR=IY4$cCQ+X;va<nxXQ=-nTSY2IALy5XH~X;O|ExL68Wr<WRjUa@Ux<#>8&Q53iL
z4=XvQO~75d*w7`4$DkmKS*N&<v@#0t&z_=yJRlRc#kzT{L~E6^jtxge(hlmVq(h8<
z16u~r0?@(I#a4Ulv1?<oxbKghUvb418&<7a^_BfK5jpzxtg&;2FMQz(Z=P<K=b>We
z)0JBe^uCkP*&AT~JY?o~-E~*@+u#27ySHxLdL_?p<Z0_Xs24x5;o;#^uD$l!dw=z-
zU-eA&OIm;XWWUJ8&Qosz$_$5sl?%Xj1qxNi)QGlSS%>ClU1}1yKRy`A>$`?SLTq`U
zWsp7Meoteda%+-ycjC+FXb-uRPPB&)fSuFVLBbfR>CtssFOOow<{y24=$~(DdPbD3
z-QCGRZfoS7^8)(dr(@ZzSq{`<1MnUiGYw1tV#qCU)<}t^Xk07M#KF?LIt7ros9zQq
z0W>(t$K(~jlg=o|0^q<MZn5*g(#+)vjX~H*PbiW>Wf{Txb#yJy_tf8wJitAUd;0(V
z-`DJqnPYp;d*1Vx`(x*v*}{4~KF|B^yYD(dCcFdH%MT?p-``^ng?`=u^XDlu7XV(o
z=9+769~~WCwYT8|4C?rS2`1J3=}&+98&mxvPE~?o26x7ppa0aJu_$SAV`>s;6jqe0
zqkjZ#{thk3yA%frJv9ba9@2u{;_)HEwgga$`)vUD<rOIUj*7zNLMQBnxGY(>t_DKC
z<|d?AXQ_L-rC$bciRatBh3KoFL#{}xWaPSoaopTaTOVgYZ)p$cV_%46D3)wODyYnK
zM^7sPSc|nmYWM(W1boTt6;E}T;>f_!_DS3(yHa!N*9A8Xo)h=O98&;$cbCp{5ez;$
zL4i2y=b;7YvDB1u#1paQgdqIQ#fxKpDoZZD23ZN};`Z{r_g=6+X3p$<(V|7)+Z#LQ
zMGvoQgSohF(M>nq^uhyS-!obCJdh*LnR2#F#R1a*^XF0VQ?sU<1p7JG2J-q5WBdbW
zP~Wj*$A#bd&UaQ#g<VYdhfpkZkL@XE`#VP97gqxwFcoO0=TKgtUY7vFoi$h(1xOA@
zR0z~`pRuw4`x4QXtnzIK+If;r3QANFv{F-SJxxwz*+u-@4y&I|BFt*f`CuQ>|M^%>
zfL!Y{5)irAX(tG>w306dbnRb6G-s{?XE5xd25eV%op!Y8=}C$DS9X|csRtmQ*NKjJ
z96%nR4!ylq>}Pw6k&yD5oulCiQj3&lUaX!Yw3s<>a)+>*G&ifi0}q)1Ll+PB1i<p&
zUb1w}po6EMzG#1}oVPc<=}p(y2XO7prf38D&wlo^_Z+CKGE>sZbZSB~t*1}sH{Ag9
z=OL(HcinZbf9k2Hu3{kP!4!IaWVmF>l5cc$blg+#GQsJNJMK8=VEAn7uY2g>pDt~t
z{Kl3_A`6}X^Py3qJz2rZ5u7Dh`QrkR%cX?o?v5o=VQBJ*0P`)d^5qq%xtzinDF)6{
zjBo;o1FVr_o@TSS>ay$vO;iE2B8~>G|I;i*wYFyjXHDcKXK5vq4d_q)Pee<X>-Yd&
zZG;_>9WwGq;u_C5z`RN8=m2CCKj9;XBqNg>Nr5>qICj<j0qnV)i73F)364TsowQXu
zR)Kk}nR&>CQ2gDYn>VSBBuD?99czL2Fxn2X3jkejG&FQ>I53c%Ov>SV-}~ORot>Tk
zvp1U}7eZ}k3pPO<uH3L;L(@zYJP)Qt@o?J{52e)70P|TUvHbFvzdZ7%KmF;gJgC=h
zxjym46F>d)pZ~n&M?d<})wkb%`<W-4aKfkUPClH(kL>7!3F3ShzV5MKpVm4&)&`Sw
zRe<T}n6fBV#XfiXj+7ey*c(w>DWYa^Td3K4{~*yexI5a7-VK|d4d{?pA`R>utqX=;
z$Z97G8BM*vpXhTR$<R<=+l1Yn^~FvGbH@$nL!XUk`AP-2kxpcUuO0a>kVRxLR$j>_
zeB{uq**DKYT{PEt;T_H7vs$9zoOZDBR;{CB-*Z}m0prKxg44$Xd90avg2h|xL;}Eu
z&Vwh#zFVM<^8j)Q=vsQqx~^Ycw{G74SUI0Azx?t~*Gnz+?7Ut(7oV~J_kaKQ=gxHG
z?R41s!3Oo2DuOn^{CQ9SwZ9Nw{Nfk?3bi~2at6;UuDIeA-~8q`KRa*Uyb3?&h8u3U
zUi`SW@DC9u0bZ>Ky9;#l=KJTAc0G7rez<g0D8Oq>fLBQX+;F!;T>{AA_1-SfsCOu#
zIlE#xLakC&GR$@`=@v7Kb69};umI%Iel=pPG@|BxA{X6r&5&jZ?2&3JBAuI#1?2kc
zGSs)z0J$Ay3m~uW?o_}Y(EC3X(#jJQ8|PV~E*aMhOD@pp^I6lC3UCIqMh*-XfL%ih
zka^mXr?r1LSKx&Q@B{228+lrfha`jBu~5kznN@<FcRjOdD8^@wBQu~sRu+AT01%gw
ziyi}qe*xqGbVx1O+1gW29l1YN$hUv=qaXcEQ&ZC;`zwUHy5P!ye)rvXziuW9o(Eb8
zJy@XrY_lgez<ibfI!-s=eDi5fKmGJ;>w)~@i!Xk|CqMbgpVfak#Nlym&6+iT$ITx&
z2~gW{FumqDf6pI&_`+;;%S)4^1fVVvAiYBTE6#^U5cLVPTR#}l{lf|6#ra&2NGl?S
zIYWloUR2+@-P?(_JSAAV*fu^+wEi)HQ#GIRiHbwSE3%XVl3NS-^_8^|+WTLA!l&LH
z<AEHX7h4b~l2)+2`?`=$dyxgg`UoJ=!z)7Vc?TGKdc>RrcTYDg=`K^)7U5ihO)=JT
zip#~$n)aY;U}r4GBEWt_IWJVl5tL3HZ&Q@a9E=#iiZ`B7lcJqi`8XYYH0J0dI0x)p
zTNhCTrQY6!`(owx-xPx^&OiVBznF~FVmqnCQQ)fw2M06LVc(N!Dw@q6^XWuzG{F3M
z#LU0_?Qeg{E^^`rbo%M1f9(3}um8^8zBuQcbIvd9>lZIx{P1+YoRhiFy7j-Aw{z!h
ze_HTImqt}J5E&ULg6vYEFQK3k(WZfjc9cV!Q;lTTBfv>qq+R0MwnJR*6AXM{r$h6L
zSvvceBE93HcKY;HU3A$w?UZW~4A2)~MUHI#iS&SEZRk+ma`A*W2q53N#Q=GICVBn1
zG%k3);oSkf=;c~6$t%|kzf0M5>L~D)7Q#r+JJoHO(8AlB6(ARM8e<qJKRV<W>66zC
zo)?M*oytxLV25)D*8`Uk+gs3CxOi{DiN;^<Xi$&gB++j=$*FNm(9r?t0B;6xDY4+S
z!PND2@$m5c$*^+XuDRx#pWx3lQ6ZE+%X)S$zN;<bJG<s!WU?F%P@hQ<Z!q)cv2K3r
zt+yV(XV0E<8O-rR>gwwH)lE0ubi=+5>CQg;>?iH#JM+vl@1LxLWja5I2OjvvDTT_=
zF>aK2=;j2NLqb7u6Y@w7lZM6;>JVG5E1^&TSVbVsut2FTb4UQVORrl~ppReFN>`uX
zLKmFUL@SqM$;-I(_+Ua!O>?M_%_&eMtv!<hUPvLaK)IX#%%>fj)yOv<E&&kQ8<6wm
zSG_TySH4NJea-#@Yq0?Mf^mZ>`#QMGvt$?O`;d8LSE{QzS;g9=94y>S<e8ipfcM~-
zCe@_m6%=f-K%o$fMM6FfQj!4uV3E<zrL?3oQqo{{?pV^cA4lIW)z1O&I4`z%WMuwi
zSUI1TFJC^odiCnR+aEi(EwKRfd+)vXlxK@xzQ5nW!E~}TnECTaV)@|@e|U|}$ib36
z``ORFMX=6jUtgpZD^`^9`TTb2{t*9OeDTE_4@OlVr=2@DH0{{7_GOuJFbB;)Rn5#1
zBsG%tYa_8kWwBM3I1~sVPj-php{WZT8o(^fc^+MJT7gbq;8ROZFmERjV5vaq@jV$D
z4O<j|CyE7fRtvxmnlomK{`F^l+WKUhv>!sZwSDBA$6a6S#CGn>1uK6KjT=Y}IYp`#
z+V&Xh#RD=<qzkWH9EIf4(X3c=th-LJA=nF_66yrNS_WbOxZHee@rc#%jErw0djaTD
zvlm<C1iiqpW{yp~zl0A-P>ls(Yhgd_4%GneYJiv8f0E=T%gT9s;~U@j^@$3hc1Nhq
z&arLUwCM$hs`K+u25ZfPljTs!D-AH8MSy<y-FJ6y*s$R$TPqi!eAQWJowZ{!U#w!W
zxK*?A&x;>ee6VbZ4?gtkqmt47RS<M*RSV1^v-B6X*IFE^^<dtoc>ET{a4YEA#E|Ft
z4xPHdqh>E5AI=DYl&;h;1bY>W!LCsZhAvYz91-BDz0Eq)96&faO7z)}2=I8UZQKB6
zmR1<ZSsJjVl@rbg=v^O8(r8*~3)G#Ma(1cqj$;F(&g!^Z^#SN30@9$ar4rfk>8tmc
zN2`88?PpU?Ic_3d^py5+?Zn|2U0|`R3#D>+hp+Z)Xq5@p(#9US$|O9k!!<uwM>BM|
zS@<ykc}K4tP7t(CmX-70`3-M)!}|92_IoB`=e#H~m@_-a(d10&<p*1CIhY_mS(e@a
z^XE7-|A&A0hqu~)bn%0_?^B=p)b}U*WomA2-YkA#;rrhAzJHmi;^#y^lAXIY_qdg@
zg<z(TSa^%Yk`p~vS`s}HOE&IrQ95!>=ZOzvV1!`eCv;=XoB$wLLZEMme<QIyxXTl4
zI1o&CRDffZ0)d*`{Ru!E=qI}I6B#M30LXE8j}w5p-my{-<SUO4=-NL|Qov?h#Ho<c
z1yv2mqzj=rEwA{xVCm@iLY7!O-=rD>+;OH<Geyl*gV$iqO+!Is{`R~tcz(PlZVTp%
z^F<T3mFi5`v}SG(NOkn8;BaMF1G=j$j7?Kv<$QYSOJ92Z{=&Do5Q<HF{>wLS-dvn5
zdijAg#XVam3^l-fmYhaMN4@*+zyDhMx~s0b>Rp0uN0Vg%f~5|feDcYEzGlsufvM``
zQ~A>G>D_cpGB$D)z?@@jp&KJ$D+Xf)uvHZUmVsJ<a<J3{a;@%CMLK|dA^_Z}#qz#S
z4?~&}Y>z6G#1$#K$oG^{VA{7w0QtwW)W5q;X07<T63XDhvI>LFxVfE2p}RAY+BdWE
zMEld(>d5RHt@dEkdEdw%o(5ql$LPC8S`T-%VD0KcDSPCl=A9THd=wka9eO!O5#V#<
zhN(pR=p%7?V7UQum02S`d-0wV4v5k0+|jIEGIZ@^!g*I0LdE&qR9HE0ANtUT{!<Wx
z(nOwfu04>Jb~q>K&O7fsa<c4uw(8{v(~j6+=Fbym{;h9)>tw-h(s5ji7cc&ox4rFc
zYp3$1fgSO4pZnYm2eb3@p@;8SP#M~FtQ$uK02hAKaIuWJ{?KSiFlbkiZ2%Pm`B+6Y
z5iOhR(ou5+T-O8>7k5HtOCq*NTwYfK3x{h15=)e_Rsh|WjYKzmEH9@7aaU*kG<lmn
zj++v+GN4cVWulxZqzjXJ|5zty+aoqe9eCYpXgW@zox{%#i6mvzdW@aSQrDKnL`x;E
z2KhP7<}t1=hz9!eBK^2b)-Zl<o`R-cJJPsXVrJZs-&i;IJT9!HTMF#<VMh>jO_i17
zv|z#iWA9Di<SMJQ@pG42dr5bvv+oHI61F6eKtc#eL|J4LWW@Co#Ss^D22s>c$N!8v
ziaIEcA}XK`GJ=RY3<@GUNDxVY?EBiC^xj>2-Sz*T_r9m@+eI(6cPD(6-%Z`R_pMvi
zRkxn^xzBmdIny$W7cc&i4CFF9r_WrLTDEWBKChDY#A5aGvCIT52JHVIm>=U{{_L~Q
zUL|jP?|a|-^<qzyFMjch|1o36j8rv1oNk8>?V93dl2Ztn5b)Awpx>E1`w#Y#S-;E9
zsoR@vVt|E9Guw|Dp3MqmLJG`i)VPe0=7qLgZs&6uknhiU_0R)amQ4gE142*#MNr-P
zI>7D!5@z6EpL47bkmm<EW!DM;`RBjwLbT3f!+4S-kfPTe!5M)US-&knT@e9H@|V*O
z1HqMon~Lj?<?mkvNKGNpDAFXv>#B>OXF&YIbm3DE2stMgsMH2G+Q?4zlZN<rp{hB(
z+$D-nQC#Y&M?fxQ7Tm77Zn#)hPRr$&Uw-dU#kWW|&-a|~+O_Mnv9u?SrG7r1q?Z2&
z=3{unrV=}L?07#tW`O*MYp%IwOR-Gg#1l^(DD{%D&>zFWL)(wnjramh=)k<_Rb$g@
z(a5xoC=WPkM^{Wet_&!)+R66yGeAe?nozg~o;JPGvRGNsVnB||Zg$+D&cMPk7|7eX
z4nwcL1aQYUP&}^B>Ep5<F0)3NjpO~|r6zpkdw8|tNgeUDAM^|ftsAc#Y|-3;m!s8v
zM+>ocLv%K>NIns=jH>vp>$t?^`f`gUEQ=TnrA$yfR$b5sY-+S&JHDr!fFF;Qo|IF5
za{Co3){dVANiGEBvg9JxapH3gqjfY!J{-ur=RNP)(%9Je8o5{G9-%amlGK8Le(>PI
zbBbl(<H=uMs5DtFORx4#XP5c8FJ`p+;r5NTKYv^~_vMbM)V5;w54Zl8zx-v6EU~Oz
zyY_ba(rJubL`&W`)VSdu%O}!E&mHdh@px~rr+d$`U^a1r8uq0DrNPzWZ96WuJG<Tz
z3iz=)9`th+$LVoZ$MGzNyc8^>w>oOASr__)3d9f?vnG3v>46$s9(#~|E)SvY(34dN
z$n$?N0INV$zxmP%E^96{;s5-zsEs0k(-t~5xk?=Iry^Km0F-Bw8a}J0+UQhE-4$R>
zosD=RlL&&69D|Hs5&Li)KIVZ^#VfXj$Hxgo5$cF5baa|L=!$?>i;N06hd`RNa$@At
zO%Vx1KovEGyM=4!mNj`a02yvSW`v%3=9%Ar;)y5j9;!4h)z&AAVqah18pAMDd|sii
zQOx#Iw~aPtwDBW7E_9!~zJC4sqQ(!kp1*D7%9TDd&mT0>{YbO>Q2Nkt<4V0RcTA<W
z6|;Y&^%q`v;mq8us_XIVuDkBJS~hYnl)-G?^4IB*>7Nsj`g0=MD7w+Cba%Z4^<i>n
z<Zc+7V<1-7q(U85QACh46-b&cXXm>$*VBo?WWeWeuli5Fr7|FI7zE@pm<$EtB&}S1
zoe9_7<jERT6P?@tz}GBHTXLHScZzNMesj{(scIw60^}#>K}vSKM8+FK&jHaT$(B6p
zWHrR&V89pciYUd<adG0K@#H~QDbN~)Trv<)0F=HDF<UD6%v_}T^XCz$+jfJKNCb*u
z<?=puF8+^P#4X>ZC`&Eu*6{e_kIyQFeOKDWQcMuEnl6`Wt&b$#sO19eXn<eI<BkU)
zA8Mv7^h?NJ-??+=8d{$@bLQ_F8XC+}qvVx5Ve^l7q+{PyC7YbCg3nTw`e2Wiass3P
z<eyvYnTj0@q#C0tcWLkfRakI~13JKA&A~D31T^6AJ{P|EIUROvtfMsXK>#uokQ0c9
z!Y17O@0i``%OQ^Nk0W!&s{(SC1O;;@maM5h3zrfrxjv5U*%EBr6<MMtnZI2>)juE#
zbm^*pYzhFQH4{G{l645|P1^@?ML2vw)STfHha`S--#A^FNLRmubaOfw{SovX?BCy1
zs7{^_4yT`fdJhKU^F8PJQVUg5eD1mDme#r!OD&3QRRhGUfh9#V^IG2*Gbz*x$cz1u
zM|xgQPtP(MhmMp=S)WQdDMw=KU0sJ}shRXNP2`&MoSwRHrxo|S%p9od1HE<~m$|{k
zTHZQ#oDcL)oN~f?mm#9fPz(V*#h%-TS&<P0<pezSm;<-{O9&GEUg_GQq@Vl%90B>v
zc_#e(Pi<Ismgx2)yyUjX;6#Q@&7To$(X+0IKqG=|K*%l>40QxsCVd<Ph=X{HpzH`w
zxGkcT6yQYtoV53N#wXI$F$rZIo{R(@(BnO~cv_;ets|N@<M^O&g>-G(zvK~2JU4q%
z;jKLVToIX|PIq@>DfUEK&OiVByM~%j={t}uid(mCU0dr^{!-89YNYm;(hsy;{HQuJ
zuO$;N705@^p=u?!^!N9lO0P?$Ys)=>DlM_#(%0WH$L&kcQn6qZIyKN@rw4l!H5jv9
z)p7#CE@+MJ$BJ4?lATlo43IjpWBr1M&${qimj)Xqb)a@^A)vFT_JnQd?Y7~+eyG4h
z_k<bn1cB<e=l@WLl2y=_c<x08eDwzo?+`?(_f+K&4}-N_4B>+hsD8053UInqgGCh+
zfq2cZsG~xlj&)~T0ld+mkEs-F#2%pp<oJ469#<FoJGVNTQsqZmG^TKUCrz%DfViqa
zmTm|A04P>Xbn`(R8M**$pzlnUUxXavc6YZF!pMh{TyD7GhUXYicjkM}<zO^f6b~Ib
zbXlcYc{NygrKOfy$u5Ney831W@=5@8sh3FdI=ejWlbkJe<(??jkXZ0GW%8UY5UAS;
zSi3vUP8!BMRRbKQE)Y}d>vky((E|*`Rcs%p2zG0QBW(>6=l*T_jFa1sUvulFN+@W#
zx&kHxnay1e-0@8nUVAB=3#3s1U1sL_ZWUbWCzx>aH!S$Tjb6D~M>MlQUD^^oM$wK)
zjF+Sr%D%KkhG#>>-<Jz=QoR<DFccCJ63I2Fm*b?M3I<K=947{RT~n&E7$SK^NG?2R
zD*WuWJBVC+lLI!l4v5J@^X-Y8nM;~D<hKr_nk<ywk036<-tF(7R0<=fu@fdtFi$@D
z<R1=YQ>2BY7WN&@e&(5Hrj2DLXf36dvCz&(BB41jKN=;KY65w=EWOZ6r-p`xowTjD
zxA(M4l-R7a#DeQfmz@8KHD%fhDF)^)W8NCp9NE{m+zuq>LbDTa!kNiVU*beXv`IrS
z(psa3!r^di!>dnEe|6{KWM}At@9Y_H;PEXM{PO3jlZ^3hHE-x|ns0@Zf&7%^7X0gv
zY*@6+XUL>KX9VElVYr(_=+sny1$%}PSYvRsKj|@Z^o%PaII6gQZ4@rcn4Ui!w^4&<
z>UxA5Lz+Js@T4RW@TB0UM)X}uPQv#_k9Eb*Ld7cr49MbRBk0=`c};U$GQg8%C|@&|
z_N(IFjmKL@V&jDX{598H^Q(N_T>frwopf^s=BJg*%Bvahth7E}Nxi%rY{{7@MzRS}
zAgbE;#k^J_V}}|u(%&`Owqp0omco(7&YCsr$?ooMUZ^M*i=D;*J=oIHVvO{h(d>t%
zSQSSbzj)EAjx8szzJGr@+vILLctt2^M>Nxp1l#Ng=vkgfq)2Sjo`U>5JF)l3%U3`0
z`wf@6rrE+ksjjETO~(^<<hbdI+7~zBNS_Wyb}*3VgE_Llh9(={eSH9yt+Amo?18o=
zTFc=rD6-rQ+kYRF;Rzzhm=;B^ID;1&wx;;mmmu24;Ur*6*vT6>gU75*%MSosB0Ci2
z6$I!kIaNg6b!6o<p^)3f6pY^z$I?jWRD`@DfZf!6nT6L(5YmYwY={1v^CcFlq6qT$
zm`F@3)|QxmyZrLYcYo_!-+C#LNSrBa=ehQK;=99%dGqGY=dpc{j#q19t*waVSP(~(
zfrol6jeS{F^@Wdg>|$SIJbKK_@tgPc^(9_@`Q?w&V+Q2EJN494kK}(wg&eDxeT6*E
z-?n(s%Kg1Y{NUkGdce|^xRp)MRCPB%b-_vVb#*Q4HU^JqeO99~(6d5I^)3k*0}BII
ze14;52POnOl<H$3o=gQ9DEQWm{0e<4Sa8YZ3f%DJI+$~u#n`ds)evXknN9&<83AmH
z!L?^mf65S6Kut>G;ebt!6w7;`WLq>zjs~f5w9u}3)mdyrp?kGka{hBFTOexG5Yr|(
zN6NJKt_&pqItU$}l8ne1V>!N4X3{2r=05h?T$a&6Z*B%H9OjKDc)K{ydgwKI#>`j*
zdXXW@CqtSLL!oWTdFTD9(4>>$0Cwxvt%)5wc3e$YQ7YAkk<JfZyQiz`1jgjQ9}0!W
z%x_+4kRMABF9gu%%$ehZ`4v}OQIkZUQUUx}OctW``Sa&@KltE-A7sEa0k<*s)6c$-
zzf=>rM+5DV#+-2c8EvPWdj4|^L$~#5%H9EeV7k(zGVs=8TC{1S(datR6lv45p?)Qq
zo~EmAFrfQclLHwAb`NN<vnvP#@gQU}`WtMA1mr7^x8cX13&7lW1bBiDC@Efcx4##l
zrvsp)jZFyM0QCV4Y{m83wS|1UVb<~iRu}m;2-Z~QHf#CzLKXY~C~4=K;@cAme5ptm
zjmxF~3vgE?$%T{=)W}WSXZ934<<Aw6NB2~$t9ds-EBhNGT<%dJh+vLw@i4wX!B58-
zoKPf~JO_3WG__UrpnAat50t{l<*{?;&fWjO0}p(Lodbb<SxmmF%4V~5kx1ls%a$!W
zGFq3Tu?FyR5{Rk|+{J+VATS?^nHK}bBLT#*lJ!|Gc;~MpgJFzkVDH|&m*eA}o}ROo
zE?xTLY15{qN@3%bX6HkFx1mtPMo>R<#btkWoe59w*t}(lZfY4dsHb!Y^=K*8vicIo
zG0NPGaDxCgkOtV*r@^is4ca?G5bF;yMytNT?uJWC)P(<gg$g%cra@+w0s~={fnfq-
zJpi4D0oo5TP>w6Ga9S8HIIRKZP7OkPG6Qw>evp$(8N`Z3T`De%2s>id^Z}GII>|8N
z<n#^EgH&kl<W?aYqC>$?0oXi{X?si_B^`$*4@ESyaHQurQjsrFf;X3R#I`ja0GPu5
zPV6p$@_7KkysnN-YI?3_xk4R?kd2E57I^Pa+yR4@uA7DnFZ@ZVjGS)RYxe1<pKj>v
z>|8B_dH(r<-(xzR-h0_)m%UIcR*oex7$I8J-rgQvuwcPJt)!JwfVf!cq>yzP%uBW=
zjuwb4H?Uf0kaN6v%uDr-e*EJfzn`(01LDV^-+Jq<->j5#r5ZKO<!x)udDpgg{=>gs
z7tb{97-%ya2KM%!+IO&LWzT@o(iT^g{e23&)}g}7?E%<+AOwdFL?M~b2RS0hYUtPo
zTzZBLKl;Z2oVieeM2fL*2JD$k0=f<X?Agh#Tsjpvmx1^Vt0usOi=r@Nf(kLqfF?BH
zDVpaWSN)(QNg_ELw#W=cFvW2Zp^@jR7K((SfXLv)prk7HVVk#r=1U<Ytso0GP2by2
znV~pg1cal-AQmnaD%XYNV_KdJ<2ruvE==jSB{z#pn$1u_P&%I|^HU}s+3dX0EQzCK
zf=YqVyW{|9{uLEvgl^lm?Rre@FV(41OaS!en{WQWiWMvRzxK7SZNBNIoA#Z1?z!vk
zz4zWzYf;O*QWX>{;f%{Mb2f`sO&1?4CO(#oyjYgr*w|>YAH%x!>(_roc+Zy}IB;Os
z`RAX%u@uH#4K_Z~m`SZOldV(dytK2uC-w67!>8}<HK*+B*0i=>4UP=xaHJ~;eLW$D
zD{Af}99-?tgw>}3eEOXMIO{}>1DoS0U<Mu7UvI%-#!!0?Dsc9M09-mf1alaGhZx=E
z6$sh=J}U)THw0J%MiG?SlmelO(5C6M&!y~(fF#K$woNVA{Q4>6|E39nif_?l%kt};
zQ-V>}^qn?{{g&fPF4S&L7j{Qi($>lUj$@<jDrD9UkC|hLA=uOe8deSq2H9(<gJl+M
z_AJ`SITAC+3BWOoh<pC|-(b&kie=;ZV;3!2)O-K^_rHZP@45NRTs~GNlWCbedGfDt
zd^K75XFl_pk39bP<5)W;*B+0(x0x@#_~P}9AUu8MnP(mtivVaX^>SRFJ9qA2ndMjl
z^3kNA@ur*OZRygbhn|1_`6iTE@bT{5yWiQ-(Xr{AbI#dXDsa~V)baM~U;ldXe|-0c
zU;pb18^6@o>$E1~0Z1iv$fN^o(ZS+!${T&-4nwvn(<1QJi{`;qmjs|m&*nf9L2e-G
z!0v<t;cgW!pAdxE*fSLMZmb8QdVq-UW{Z{P(gT|!7~6Gofka~3oEc|5AXVgM5UL-9
zB!JgcpT(=npbE1d2&?|FF+fTZjb#t6wE{wO=T`yJRe_ZU+BB(<Lxvh?1P1_SZxI1d
z1oXy6(4$e%u;-~<0+(M~tGUJ%MEo7;vvwCR{sFYMrpgI`((T~EgPof;ZF+BhAT-~J
z#K3g(MHgN4O0}exC!Tm>)}43W`8a#54lzc3_0?D3J%9fEdr@{dnnAn}aF@Yc9WUPU
zYNhR0LvATodKqf{%U}NTSEAAAZaV(M4?q0i4L98I6$bFZN?s0@+kprHA|8)xx88c|
zT6XpD47=Za`0(NPP=jCjN1ktE^ZeolG&GrT{7DW>ndw4LcN(60y%pk(lfVrqU^5gn
z8ItxhWSiEn!<mW>M#hCynz6o=3)v)NoMK63Oa_?v8a4x8ho|ckD@M0VoH5+}>=Q+H
zpH4C+ZulBF0%z9rS+*kC2@#y}SeD?kS&=Eq*<aQhM>;$mBj=tGorh>UNift1np+?>
zf6_w#yCP+!a<@(-uR(=KotI|SK{AV)SBy)cX3wancXc(5CZQB6x7>8oO^>m2bbEdh
zkqqScnj1E3_*6BemOJja;|nNB;`;2_vmf~AM?ZQt`>m|3udm-O<jM#;FYluFP|o>Z
z>hG?a>%&?TFTM2Aam&EV4RVf`0O)Y6SKi*-+-xu=@gQU9?;>~0kt0Xm!a)5pcKP`F
z>8GE5u+{-k`9wlp`^hJtoN?Q2x4rK>-}%meGxqaowrvh3jO05U=y`*?09nx7YQb@f
zTxgt#uZ2x2EXW!R;0+ael1<PuGXhbp2f&^iu@q=x+ih3Lv0K+xa?Dq;UFcICI1;u1
zp$lIJ)9w3XjMaAobhHB;+7HmE2jJ`z>fvBt78tqpD#?P!>?!qLQ~Uy0D)>Hi9D|@9
z3Ha7Us%Xd?UI@SripI_k73i}4+AB0s$jsfe{B1d3yHo%See?7G<}q^~1jXQIeLZN{
z2NXYV@LI(2B3vl5pu{5N7FW1gke%CjKYjXruyEm_au_*{2?PReTU*=yEnBu+o1e8S
zgJC9<nH&rTA6~X>+2KmF^39t!H~;KsKl?Q@@GGvk;%dgw|8@ED<p<9=<BUU-Cr|zp
zJ4bKCaj8^lKKmS=VEYb?_W)=)fzf&M=DjfhTFKyLB^da4WaQ<f-4?R_?6c2q|Kb<F
zxQ6`@I%yjw6Wx9H-7mc39q;(d4}S22^NFdC#uD-qJmhw3^q4x@%Qa8f50Nj)WD*%T
zy!6sb&7c4L=ihVj#TP$w%PqGYVvm2s#?7bxk3(f|%C%G+*MO<B3^?N)8;(Dj0aHZy
z!d1`xkj<o^x2KC;!uP_nuS8*oa~wEzA;2qW3t2j{VMl?ufr|_A6k0f4NG2TU#iSMf
zy6kUbjJX{Fd@sPhT?`0K9p1IP5#GP15$3eAtA?QGKP34DYmD>OZW6d+MrTk2IaS3E
zV)9Nzh6m2PxrFN{5Cx<_W>BN=z|ZU?35Pu9)GyRDrQ?VqU!=$PDPBKN+=Po`7`e)c
ziW~%$n7S&}YEh&lA~zOmsYC#jZa3e2^B)@;8eWl`guEfGoPD{EJo3mtRwD!S_rL%B
zN@V5ldCz+;`s!D|`dfM2C6`>Xd+OAwkI~pa|M}0KtQIRTCF^rIj41cYpKkh4S(3wL
z9?FkLdd_giC??BuD807WjL_lUZzZ<n@23xVw6UYDpMU=O`x#iS`sO#k`8Nizxk5?Z
z-Q8<{^{Zd4ec*uydgsrd|I5=(JMFOxF1X<3Q%*UhXQ&L&q28NZEQwAA+)qt<aXVVP
zo_Xe(#Tz$nJZt;*?eAxk$qF1pjR^8BX+xdl_(N}LcA#mB3sa^62U5;_h0hxsKWDRE
zg9qDSlZu&!-rg<->?YgZ3O#d=hcjj#f<S*iW8>uV!2Y3L<wcWGV1upqwYZ!SCt@xP
z^mxAWI>t{fT@Z%jrUoGt_4M@wvdXZpm&+w^O%aGRTtA!Bc6?@y?~%(lt`E{w3Yh%j
zxstnvUxGIv5}3dl+<TO}R)kg2m3`_`vXK@LQcFr`;P_$D02##dQ~4!u&wWp^*pyP)
z_)y~_k%;~2Pk;Ko|MqYHwrwcCIj!&CzyCuUHf;F9k|j%e$_aGlZ)fM_1@C<4JFjGu
z%A-Sp-@=6pf5)z9-!3%%Yc_4#^s$ppI;pQ#+WA-oLphk|gHWMhT?mMm3gnd-TT37>
z2fT+`zwp8fcQf{L%GbX3wLc;=r~SAvplsQ>bLVGpdGNspfwB1Z*4EbNr%ju-o`L*p
z3~&v0@^bC{_~Vc7o-=1o62Y3f+Ox|~ZQZ(cGx4?9c9mVWE@UVD;;yc)QyA-C!5H~s
z`SO{bH&l{H{*^#LbKsJ*RJitnAS_v=Lk9z+$6q(#Nw%aJ3S*}qo&aQdt<!M9!#g$u
zYAXu^43W(&8=IO41MwNKVqrbBq}myXJ2}b1VaG8UQ@0pu_OW%W7t`OtFsoaEvzv5S
zGKqnBguQPDe!9u79N2qG+a@&CGjMfOPo5Ad^~ucOu0IIma#9avl)A28Kug#BQn(br
zR3vL70li`Sl@YUsA9Up&b#Y0|C3ML(L&xGpy&3=}r+m%a5tbNgraTDHr5fjh>Yd~F
zl}OBT3Y1X_1^272x@!AF4?Xmaty{N#kpNxJ3Kj1`XIGS0-+ue;cUDqrS-yPv!~gV8
z|McW=<JdXBk&%(y<3}HT^o+%e7e8K0X{D9{&|#VRSl|CYAotf-ty<N7*Ijq5`qG!a
z^sOB`c6^dvFTc7V1NZ429Ua%;!kAFOKhEJ8m0XH;C=J~a*)=l5pFPoqYtPl-UFU_M
zb)pJtNa5^zZi5QfUlfMR&JMvnk7eM+ErwS^+%sWtL_<FUFHptM%yvzPC;J(Invh8w
zY~q;+C(b_+7B=h$Et%pSiBLmFaI$O#dXp|3X$P2;QsLtI07P~6*`@G3DZHqP!Xt<(
zB-l(q&JrFd0;yV|;*|uDdpxKjnTJ<Kw0!og=2;4<!7~E1s`w3{9f@(9QsFIIG|F&<
ztfCOP7FQpNm<;&UMxEp}H@v=cyr`83ifS@oOIKM`9yeDKH<g-MsvU8p8@qD+`Zd>F
z^AGImaY6n$N$1Y`_3LkD<ltw~Xw<Hhs|A64B;cGkZ{A^fA7kd{vAf5sWm6mvj+QYG
zfR<9DWi&9VcCfS38K9%BW9OmEFTeaxj6pxSef##c?1wWUzb7lPBDybU8EUeSPaZj-
zIkVY;D^3Ua(&Z}LbY%d}TC71+qY8nr3VM(+<Dkk|I6Dqo8tPRzXGsVqx2W*aX47N1
z>fnaPkXy$q2Gs8}kWQKqON5}?o(_#uf)G^`lKoDBBdQH^69G6;(L6x31+Y1S_KF6e
zhZPG3!1k_e95)BRJQ#@$rnBC2bB!Wwzot38F96>!?n-5ILHbQ$1x8Eqlv7ZXYOhdQ
zKLI%&-;nB^+mcJBnO$wn?C`Td^`<6nPgK#Kh~Je6g32lVJorft7z%&_bUSO;-dk?)
zGyjJ95$vk)=@(vj;fA65|8f^lHj8@wV;G<;M`|f%8(w+-;SYcKob)@2U3=}d_Z=&?
z#Qb%3H9of1#PL?{wpJOSg=`;c{i7fK=ySjO-S3XO;)*LSLu;6vbtjLL!M)IBxZu}N
z<xc0e+Hmbk7k=?E4etGf4mZ9{gHvWHJX10hU;rM-HIV175tLMLJs_61pA~|yeY_DO
zjJaE)f*_7V`9%?x4?SlIx@WS`KhTZ3C+yyN1fJbc2ODB1L$a;~95zwdY?4@z4nni5
zL6Wibgvpky3j=W%;xV@Hdk50}HpDZwmoiUHDHzdZa|NXP0NVEh?A`&;b6AB~Oe&lu
zWDf*eUKP>s{p7i36B2k+DP5q}aZ<?u1ZhX;=PI#p!+R}suJAyp;Rir*Nj7-%kp+G!
z+(Ejz0PaEMaKSIN>(cp<$sAW`@Uz$e>HFUIzSmc*Sn<zP-IC5nIv4T$`u*>J{|!vJ
zFE-Fw>b9v<rzYk1+Sk{&w44BFrQ639Ym6u+0IH5h051fjj}{;==8GKZn8?yU``OPv
z%s~C5tFONLqWb#!*T^+8RGRf@g^uzUd4eGDX1C5MQ>Og#?Ptw;_{Sg7;M?!l;o8+2
z%$m#qoUw0o%3;tjh#8rBu2cvEX2sLQrFE{Cv-Kql1MuaKHuCY@;-`5)FHZo95T5Zp
z#2CVMbhN|1y$4~_))+jqbrx*TE(9Z7$5Z$bCQJrj496kP06oqCGL~YX&VW2N;PR#4
zaCyxX?nO@l^!IqKmz@m6^|S_8E~<mK%!zQoRi%=-)PYE@aHxXc1S6pN0Zmi%{IqS~
zH;$74ZOc(+*Pk%J8C+Ud*51?g9+)fiG%R@_EQcWO<<3H`tP{zShiT4XZ&<B_&wQwJ
z_PgKx?(MCut&hooE)xp|rsv*u*Ig@W)dMsX3fc1Cz^)Fa=T9a>{pN~sqm%>Ug%Z6|
zYMLu|+;K;K;9^WX<VR~Ne<2?7V%G~D_w2LJ&U)&pr`BxSw(a6WhYr1GsE$2D1uci0
zXq%gxUzj#++LMbGEqZpzk|mpF%$RW`*3;HFsqNo-Lz<%nbOdo1q729z8Iad879K$`
zu47;xWxp4;9YU&S<p_92ZS4Q)HMdmw!hwmspC|vGg<J25bMQvl!M6Nn$Rtt7sqVV2
zK{yhDmZoNy*g6p=G&R72DKVH8I0PXx#XCl84qF&1>I?#Pc8{z#5CqsV+XOS>a^~H~
zfIQv{(4wnw_Vgeunyf=GtiWNzhCg+r0JG*1vBOduIC>A7@SVGP{&BfI9j-e<rlA_;
z6i}r;qx4*2?uwipD#kZ;16=t#fM&LiZ>eG8L<rBC#fxsC)Pf(WB3wu=yBxAnX3?;M
zq}Q6y#7UV=07fPQ*)M#d(Va0PUTLX?ZtVP<aQ*eyzr=uZp=?(rvcZVR^MCx~AI}X0
z0#3O;^Fp?<tA#;3o__ji9bGs_o1>)=FZ$cw_O_9&iN&~8im?$^tMSBm34m70o+y7|
zBiTgPtXXrAEx%%`zv}Ah`tYCr^rurcZ{ED3x3_m5TTV`;QZtju<Vo^(!vOnvUDuP*
zX!Jl+Q`7$0vuAIdIdkTIcAV`kEiD-lROO!Yj*bp+j@)x^Kyfrx74=XUK%=A*WT1}B
zl#*_!7K$_E2_aMf$7}Y0tLH8Y!QVC-@Z5$hRdCJSY|*TN=p^qD#Ly7E@1~K3cp{E}
z2c(iMu&?nXnAhA7GxS3cwo{y4qf~B+MbCJdphq%jVPq2!djsb+>ad6{K{grjY*LH;
zO{$wq{z3UCY5A%8lx}Z26s+}R7fk?mR@78CY~M3ZDf_a{u84&uDPC(`DknfP6Rr=`
z`#y92(J@eV2l*GZL5>#mncK1lU0y$YxW%15Jzj~x=TPGoE?hY9g)e*oecyPs*g#%$
zA{G7p{j0z8o$p+D%PqJ3u~NxHg}!HYuE!C`tKnc7Z;qCdt%+mdWEsyuUXAsUKs|ro
zq)C%9ANarrUS{hr55@51%isLVVe*;db{fwn0tTLkT3W0F?@+v+2s!<m5kpT0SJB7q
zdeTIG99r&ZhJdDdy0OE-90PL-y#L||yt>n1!01s`{A&V=6bwc1L~wPz=K;?|H5rQ?
zV9!ZGf2<!SwlqT`-VFOEoD4JSVlX4n4)s<{*!{d(Ey*?ox*3$6(V)SidKGlsmc&FO
zl#1Ax4Et<#%v@xz74lw-igj^77xIf^`;rN=a0GPT-&3UJ$J2gwL;`eT;M6<RcKx*f
zT)R2}*i>5A6@PCg%*JPgLX*w<E#v@v?VNOKx$6*V=Ln|w#r5=HzQX=$xLPDT?cP0m
z_FRYwZZf8jcK-0g5C8Q2?|=XC>}oGnj?a8F;Oy+|49nXYVfou=O!sIFhK`stG!|CG
zLXv{Y8FRD(d8wd2+Eo+*xBPd|I{xSg<S`>O(f+dsXL!wQJZ)Pra}MO1-(6mjDR^Ek
zOD>I_p%?;`C77wf*ziCi0LxEqfOVUbjIrCElSC*q2!^OPqfEjxFCD+02`?{@#j?2!
z*v%xwVtvrWn0lNo?G1}yV$^_X+F_VzcQE$sz<fo6lbRIHTv8d&E3UH%#6SSg;v}VT
z2Tp%KdmZ+A$k<gOsW`5m6>3<%x12Yx5H1yr8w|vSM3mR4f>Qsf>yYF6zIId4ZjxAZ
z(ItcWhxRd!J1HaBIRZKRPN-J7Cj9^Sm>*yC{&a;^QEu$a{;<|ULAjhUH{5W;U-$0a
zd)-q{J#{zL>7nzGolnylbN|dwe)5xVR3dq3xN)&qEFeFgHf`EVBLQzMSbDYB3ufkH
z0pOKl>&F6+7n_+o8pso1%fO8~Cv{q<49@=e?v^IA^ISzkkoP1Oje?cP(lwO<j>|zS
zXL*(+1jj~w+~q)IFj{^j)dbzC3DBErfc|tn#F8q+;{$Bl5vZ^0fTTMBR8GnfsqE;C
zp{jx|6|&N$MiLAevl)ZecS&cG46}OCG6#K4P0-Uc6Y9cqV2aiWt<cFPfw)(WRwU)9
zrU<wqurunfXIw~hvlj`w5DE^ihNz3ctSu%JT({(&o`%TwbbWB=!8gmhqOqh>y15^t
zGdR)66@gXD@vlk-7??X<em_uGBoC>w*F1mrbVW}*O8rMb9~hWcEk>SyyY<#v@A=S&
zJ~VgJrcGZV{hZFb4I4Im{pUab`C}ja;0Ir+mQ8W@?%l2OzGcgnJ$fv%@|rXAa`g0a
zB$Z0C^hyAEp*naq*}1%3zNhW@V<SLMr_<2Z_S+kmsESGj`ZNycF0Ubu_p0J++9F5C
zD-|m=<31w{ZN?<%$}~Z5b^>F$4mt}Um5M=U*H#9+eGGt256~<RARX7oJKpY1`0UW#
z!n^p0lCzSDBR3eCI$lj+GmChv7kc~Zp{bF*c0(gHHcW;3pbeAU4rsADAz~#t7;;dz
z{LX73LxIC_H&@~|n-PVt(6tj~OT?SZ!13#`Xrd*a;`*_Hj0w392Q7!ZjhrYW5Y+vE
zC`mVtu&fYkCt0Rf=;qYd!eM`(Vw#cxesF^dS8P-Atg1>nJ+WA=xg21>^Ugc}zmI(6
zBcZKZw|-teNAVoH>#n;VTD^Mp$@AyWk5?o3$-sQ3te0PT<&`gwq%)5PRz93`QVc5}
z#LP?8#z(rOueIz_X_j6oATKt!SuJ*+AEX`X#K0e%VPw=`dgqO#g>$e&Hm-WLPBb;I
ziw|aHVtPCTVXrk64%*WoZiTp4Jf7%>uI|?v$i^5zx?E@G$uYudqT61;lQT_0Ds5qF
zv~9n$y{-Cysk(kQAs{J35p}%T!4s(jq_Zgo>irOnM$k>cmPY8QZ-H=l1~k<h&}{WU
zgV_rWR$s1Oc_Vw#T?}H9DS#;Zn~rN?OOwh0{7*+LkNAeXx-ygzitpVL<q71hP{sAx
zxUKlsLuzQD3XNP7EZqTLexaaif1Mu$wM7sVCtOuDr*P<dCaFcz%@zNoz{+Iv-3q1j
z7t-64fvEG-pZ@fVjG>2i?AY-cO$2N4y=F3**`NLFXMc9@z4yKcGeavK{M@{G^D0_j
zym;|#lP6Ekj8|4(h!$Ry%u<ZrTFADsl3mJS>BId!l?L*1LA_GiIms&WcGA-EcBFUR
z@ePjEtmrClAgq$JP%v0c@z9Cuw`}bYOoYAebm(@P8CYkbFSZ}LdJZs<GI-FFC)Oz3
z7Vaeo38c}5l}`~`I&b!Xj9BqK=&tQEXP#P5tlaT|oYVzP^@FcAqt|H$ex{j$L^1}w
z{ap}^M4_R+9%2mGyP{1D*r!1_sz9UN4|PU2Os-GCxq$>s(=BKe-7olLA|@G&8d5mE
zd_t3*V^JkY5jhZ76G0)#<YX4bpNJHfvNipDAvt&)Z<K%>H?vtp5y?XiHFuVhhE(x=
zQZf<MHCI!qd9{*RBv$M&hW^>>uDh;o@7}%F%a++ghYnryiBEiD@7;IbeM=>SpXevw
zwr$&o1SzpT_`whUxDvt7T7h`EfUcJUyyK-7OC?x(xr}`{Ii->|#8QEKsIj@AndAk=
z#{}@Gqj&XfSarOr<l3lt+A@woV0UwFjf3iB*b$ixeGp<`mV(2bFG408;}$)VXV3}5
zr3j%ZtD2Bbz;}3X7faA%<{8(st81bd76Ld<0*>Rea`I>A{OD58PZ#`vtfG+qY(qMg
z=D;3{_d|DYkO6xb>gwv)eLaN2Q3wX70JpiQ7NnIlv}gu2x+$o);_UL(f*H+?5Vup1
zF+7G2;_t)kS861kE86Aye=qeIr8+ERM})!kuyWpXxm!`JPLf!Jqs2B&&?qn=>rIp|
zAgB7n;4IKu$t-k3=6%;)cir&e4}Tc;?Add@91vv;`tvv5cw@)+zyJN)Di!=>lgD|9
zL}DSXpLpVl-#zQBvks5fhR)?US4Ndt#%lnyl9EcX?7LDdyc(ch4#?*_S!h23I@g_(
z2hXbq0p>zdQNfp1+SL}=8J-IXH2}#}A9VM>0<M+eK5SkEQGgSIFfnLk;kL*rqC!)y
z=>a#FAw)+WJ>VzK;3Q&-VpqHko8p(S<+6hAJ4)n0Y_2sNHKI_-tIj4Q)dnM*=1U?m
z0D%A|4PkH107Te*AQ*vcT|FcMEf5Mt*n3bx%l1OZ?qL%F+5nTH->4U$#Vk*1N2jWT
zgPbVO5PP?T1BM(gikN&HD$eEl>(sR<gB5He0QG6{nPUBRbhL=rh9Y+yB8`SF6{K@Q
zF^mN+W<lz@Q*B2}{(c1XU;gr!A7jA1@0C|x`MM0~>(;INj}Ls{1GE40KmYS{nBiQG
z%)%y%hX4KF|NReK4~0VQpZ)A-|9!l$@@iNShb**p;e{6-HN~{XYgeIa6xu3v+-PHm
z`!UcxCJP<fbKk#D2dh;RDfk$`3kAGL;MTeYutT2;Nh=2J9j`$w)y|&lp(_U=$FueY
z1tZVN5vmW+R2o)Oec1u`>A7+M-g^t`zLtywXul?ExzKiA-$nJy>f*M5aH^2xK|Xm^
zg<Js>hdbVFo+;_N8OUZC^UfsMeT+>~1CU7dLnhr1F}7_WndHU4Q1oyeAGi@#c|1WI
z4B~X9!2SCo*+^6UZbXh;wbAyCovwW4!R}{v0!&GI#kR2MmWEx2*rKqRL=jzwKrnJw
z0&-q-i)!pxmTI1S@@-CIW42N<OQHI?kUZQ=F1h5nwzjtIJ9qB9T0S?sySvYN{PD+^
z&7C{<sTnh7BubH4um=ApKl#Z=`uqFO#K#}|*vHOgw|&I~JFCIUtL-hv^@R%;R-T!U
zbgNWZ+mTp$Eq&&-uqqb9)JtLKay@L?Cnpf$ddSJnq)Zl%k-N|poeFJ@Ga+qfp||&S
zwk^g%N@l|x)Pzff1G^xqy6$`FFnEYbM?45BGW~hOA5E$uCBP9u4)<a3lTzVHYOy8n
zxh)zxkf&W&eC?Sg3{{1kY~%{$#7WAPk|lWtrDHM>H$i2<?oB=_mzNY#Mau=>a$~#x
zRSVe`RVg593jLhR?*YG3qbpU3#P?2rD*-(}u8?GUu;5mQubVrf9Ikg6<9p313zP>z
zmBG$`F0~vv(gHJQ4pc*CDHPcM<zN2g*R8Fshkx~}U;PRDbdrYN(a~|qKmYST?>_tN
zv;XO)n{N6A1}zH(^?UBQ=d9oS<~Kj4y8mm|thxT(?|%1&O0e+pYEdkxp80SfJW>F(
zTphho2g`Wznb*>DUa5T}eMb4~xYU6iMRlAvXV3%CHgPh<7;f}*y~^1uPlG4cr9h6A
zgJ9vRXjq)H6b5}CHro6wVMXMG-t{^UxsLC0QKb4N2!x1P=*Uw8p8UXN7R~o+i&!PM
z8Ipb;pb3C3K~=xht}3n&Tq)tn5y;1rqeRftE6MAb({lwTRqu+y7MP9`0ww(rda8=w
z4BDc}#q}p1{9FU7-;}};g|}=mM)dFC5>j`AubFcK&t^mPn!7?bcgVStSJcUK)JTQ5
zdU`N%Xm71$mi&Dm|M<tBnLT^<Y2W|;_a8=mTOuHl=bwN6$1lG4;<x9|pZ|-sYuEmK
z`t<4DD_5>OM0Hg*Y}hcVudgr4n0PB2cgc<&J3f#~r54cfPdMR(?|t>FU%k7M0Dd$9
zx?WC8xUo(gs<qF&mOx&rdu61cXZ~YcFjJ2zF4F$6XJCONjQVag5@7C2@N7(%0(-(;
zLJ|iuO9W{QVn!mq1cJbex-v-&<k*N{dp5?sFgeGPI@fd2loD|)ZxYA|B8tzUVpasK
zwp2Tumn#Vhf4U~JM!}af6vfx63A72tT_O4KNy8>-z&{pBHpH@n0l(fkIa@&J+^+D(
zXI)>z52$`449fDP=FzTbH)jePqa%QvJ}7)_Om6wB3B9Xwu9kG#ySx#;a@m?_3y-;y
zR}PmiJv}qn-OIIfv<$cZl1nbxxqSKZC7=7;=e~`NS7hrfI}aOn?b`K8TnY*L(e0#@
zPWr~}x8MF{UBm^7alsr-AU+bH*DL^9slaC`z+4G?Vy%I^n(SQml*^2qf}onKT9(3a
z##Z2LEx@Y^MjHVdgPxa}pEL}}+OVECL#6~nox^DdI%5v>^|%}qLtzHS5iijOL?9J^
zWdR{Wpwt3FU&oYs9xSzeMosDPI6)8#=Q_6-=ZM~GG!c*ntw}aNMc5ky0%#opx+D$p
zc}??!j=XoL?w6gV#?uzbDN+donT6Y8Lg4l|$1gg@Er~GLvS<qiPPJ&L9t%w@j?mB*
zp~)|~;Q#!i^Z55R*p8!<%!0{77!1{N#nq*n=AvTPpgJuGl=1kCv2e5uw;iRFd+xdC
zQw)Ir=b?ul`Ze{t9j?)ZOhEFFi8a-~^PTV9He8MNV;Rs(wkB2+z$>AfSIeF_9)Y}4
z7DYMDKNl5O6eqxtWC}x+Fhj=(L&JIos&yeR3sc9IY(WKPq1?i#r4ztHRVoMCIKz^T
zqzxMno3Ojrg2aH!>zy<-ie}EP=mQFV;VN!lv_0{h8(U0a;d6ZbnLAoE;R+EMm9|K_
zv31GPC!`hC@tq}9>qG|fpzinfR0JqfX<A3fJN!KecCQK0#}s{C^Ccur>hGZmz26ja
zPe5q@8FO$ULsN8GqUO-FFXwI%+WE}sCx7FVGq2nfYq;w*dtl&nl3I9!XROsCypCi;
z%y}OP6zP1$&m)nTSIfkqLigQx<BgB6T)A@5_rCYNf8V!n-*trs?(x>x*!bFqKJ=mY
zz4M*#+*C~PvKE%au>ka{20+JBH?NdEajby6)F5cNY~2GT70dGl2@S~s=LP$`IxPsm
zdcXs69;HNJXK04?%_mI=z~Y%f$TCFR)?vZl_hq3cW^tAt4te%N(!@z?$6lZ+Rag{O
zJp^h)NG`~HBO(EZ*A!>lqIKSQ1WPAZgiGk~;JZRpvMD+ekp*A=2}qLxRc<6^Ou<r{
zBp1~$nuQ*7SEO^=wqGyB1z!WFx-8^DcZExb`i5#kR|i)rm&?aQcVGREuY8^V0aK>D
zh+v-U2}%_dd5b*XZ_dFRq;_&bPgguJKdu-iUI~4?(0yl|aYpC8_ul*A`|rR1`@j9|
zZ@<#s-hP$L((`47a5#Km`SRuecGFEa{j#~a*{B47R|?R_ij^14%nP}VMe2Sn9W3Lq
zz*Zspc%eW}-G;bssp@HlEK$EWtDk^F>HJ(XM|O*lk4-3aMMNusH>7Y>g?q}+m>-0t
z^FpxUU>2U=mqKG-j`f15>4Ly%2{vp|rYSXqpmcrR*OIZr5pPe2+Oy&{lCY$1J(e>#
z<v%2(5L--0IaaJmY~6SDc>zk@ZwZG0PDQm)C(nuuR7XfR)T{zOlPr1Qg}%-mEE0pK
ziGa!hn6_V!#g~WF^o8et=AsFWQ&arhn=xa9y<>-;4T@lnmoNB7W6Xn3Sdz?wO}Rl%
zp28!hPb^htsTNz$-+s+C*SyY_s~>;-@p(@?@x<G9?%a80cX#(1UDwkLv|pYyY0@hU
z_#e6U+G}5;8s){<4XY`;j2oGy(m*{HfzN6?SPIqC$0Iv0l#%E9f+|{Cio;3I@fkV?
zC&8#Wfa`*mYTh<(HRM^O3YS(EObx)Hj0W9l8%)#XQj00FJ1G^P*sDf>=lK3`sw7Af
zh$8}@n&Ru}#Ku(_)JbMh{VIcw<Llq9_`8A<lgG)$5V8&hNJ&dKgtG;G_XymI@S2mK
zo~)T<H>Bp(+!<tf6&0y_5oM9uw*R-|WU=IwE8ex_<hSpn7)D^hf-Uw_Px<!5beikt
zx!UHEJrP9R7T(~Qm^yy1nao1SWHdLgty-<!EQM@;>s#NtckSA>ce2$xN6U+-HGq#N
z5U*JPw3JDqoWN(PEPcENJ}X&ZtB}Vzi3LGG4Gp+TYNn{e=Qp93hPsOH4Dqk!{dIbG
z17;NVrCQ-&QU^QO10lPMy>`N5yaDgPrl=q&r}u}5ZQGJ|ZFvqDl2UBpP~mQupvRyy
zrtbt%Z6S}iQUFyXFcEu(oCVRFSm+iI2}_#p6JCW}FhWAn#G6HZJ|G-4wp4$GUQ4d@
zm@>p9rT8{Q{`zA7vXig8{Gzp=ek2g^%W?;oFW;H`+0Xo<TWC#0FvrFem=&t)gZh7h
zkXq#L7QN@{!GkT<f(2c*^p=+!EG>20o59Ue)c|O@vP-QiB_8cEOEuWKcUDBY!0eMw
z9zR7M22pmGGjBJSd86dU#>^0G%glm)rvWT81^w}DkjnJuSg|W*Lh7OqD3udb1w)Ps
zrwd46>Im@G6{$d%c-w{mWYzVLr4R@UE2AxCS8Cw<zo{alA_{(SR!>(3s>i}}!BlN<
z-%gt7T%oNiA|Wa53@+81^S{I3Kqv4TFM-}Omi)t2Z(043r}O0l{p6E-AR66mrBVxW
zt>j2I&lSN@d{(ZigPknmUhC+XB!hXS^z%wPUB(N5A9Ze)Qki)zb@NKpU@126S;?NB
zW8GzFG<Htg$ZM|Zbw_BIOH7*pox3C4!JtlH<#=A_UFpeenFNMoKs^33#8dIy80uK0
zh`Qgp>N9^;X!0Ps@L0l{$g36Vp8P_Et9V^-p{?7RFT+?;yS4!M^~Oyhn~<y%qSv*X
z|2!dh+55BhmbV!8p^FTw^D4)+>$#jG?3BDjfzZRL7P%uDJOlaKNg5J=rzI8N;y!hu
zo7;}Rk53eA{DcV$ethZMZ@Fda<l_cNT6u$obo%r^Tf27MKsCBhH+MuEIhVj&_Lo!J
zHt9Q8J33~w<8B!XnWfmtpqzqRW94QUbD5=>>WGyB?s5X3wd(a*ibg(Cz3}nSWoRTe
zF0(;BG+}>EUJ)IbU67tfnUk&$SiEGb6NL5Y88F}k7!%(E$@CF+e9w0dUTiey$3`$j
zXA2KR3dsc%l2BL1^!<PUN}k~v@b&eul=+D%{0QdgpuvJysMRCrl1`qhc_K+Vw&Rzu
z#ruZvY2R&(%;^M}b3Yq#zoskK#WSy;mNIs)PNxsAwVbZYT}gKj2vB#Wlzy@_Qr93|
z^^<~dJ4!2xH2KlQqlY2~R-S(CKb*bd{p&^oE?(tw&YX1)19KDn+U8!>E@v?H&+9hi
z$|_h-&w^T~@K+kVk9C=4xP1l7EW?3pEtvOs?)6zLs22;a<56Zo78ndq-2r)uiks`C
z<4URPiU;Iu^{`b3ub9&q8@HinU^4^hRL;X4()^Tkst8Egl^lo-5wsMAvO=OffFWAD
zDFR3_BQ%+ToXJKL!B$(8*5$0;_U(wS)D4Mje;QdJIq>RzO_7yP<KN7arO*YUC{Ane
z%niDJHe2)`*iKfDrCwjupV)JHI(y(PS)+HgYo_OuA)N>@fj!=nBtuOzqCxL(bcNlr
zu72_#kDs^t2dkF9`|0|+)(n*-rZU7>Tb>#^kpDk$>Z$9kC!XMc9tU&`f?|O%(a>3u
zt0t1<B3TnT<L~c3saU|SRnYUzF0&L1;x*|3S_=4A+n!je^irzKQb|y+gv?URV_ZUY
zvv<lw&ui!A=1R2EJ`j(0SxxYo-O4~Z4YA}-uknQ{WDX%`SVEQ{*@n6masRk*v?D7I
z2=BG+_$6eylo1rRKLOw&&2Ldhz{%^ch-4lv-zXA@Ykn4{Bbae0Fz3#2xWS;mpMs9m
zyAtnp(5-3Fb2d(EJ!c~W_n+f-)9$Yui0_`>8{2n$Jb7@5V`rLDnZDB;-Z#_^8`<79
z__stt%`fPho($^sdnQMkch8u1$_vNMJ$uuXNekln!DssH^NXO-ePHFvJ=xoC%LPIC
z$B)^dq9>@__meO99Y`I15a6|R`h;?{@3EFyDh2XKL!*i@>j7FSfY(YduV#&wVnMyy
z?7R~0mQcg-yR+cCQsmkqa@9Ws`M<l9VUN)WhS3ReEQgD-isl71Eh#NMph(t2-4A>c
zOLr-FDLH3QPqs~O9Lgt-U?04L55wJ5TDU;O4yuZ%Dn9eqg!E!qk_AxM4JSlSeJF&c
zbphb=)rnx~Zvc6`MfBF>gof!mXHP$8CmZ`m`E#eSx~OPK;LIlmT_09%#Qj4t@?3`Q
zv}q}K!h}~Sd5D6b*m;Pvb9QVF-lmssDg(J9YPYEA^wLWC%8zxKWvl?bB0WHBRpPc7
z*<~zbmTEatN@eHO*2{+qf+~@z9g3udyZoQxw`k)`TY(p0G90p^48#wBY4v&T5s^rP
zS(*sAl=e=(YRuxKuJo4Umw<JId&Ci}+pzrdxm4$bYP6_gGSEb6U4HKlPQXEl2AMrt
z9Ftj5mRDFOZJy4rC7SBac$HW<eRlLX=eY;pe@_5UfJ^r@Mt&|$3Nly^7muPEIirH-
ztXYq_5}5NKD0Uvg<506y*YDE7?TI2d%3sHETJ*NI3D%4m17n>DS}u4W3o=VNAYO27
zmP$BPO4Y)vVL_~v^iqf<QwXS!XPL$Jilx|=qS`^Mwj!}{PansI4l2B$Oolcm49Vmn
z2DAg5Rde<&f}==KZBb>Bv~bkCx#L9W?+CP};up=rL>x;1v8MYIfXLnPTq05;kSj7#
zby0UEg1w7Ve%BuiR%S$(BCP7D30BV~Aa&9s0lnUonYaw#GP}kxxK1EVz)Z3TjU#ZE
z_fcia{LfnMSTEPdq3yhJv-Dp0`#JH%=gdu;c(yFJ;3tz_(Jf-$_&O-Bi2klQSBqp(
z)c5Y4Wlo<yP)muWmiEM>O=hVS=#Lrz9qUZbY9<O*lARC5yvNGTQmMz5s;7glQJ-Vu
zj?0}bi1kkeTcHC&kc_u81|9P{>xdGzVFGd2@AO07Y}5AJxq)EHRFn#fc;T_}`IvsH
zh=dzWNGFOYm5Z-q3yUMB=|@9eMOXxR%&b&|w1Sg~W%(V5Txy#s_Sc1HKanr75TNIS
zxy-!tCsSD#k@w{T`B3`!Xg}KgeZh0idBu3}!9mGG=xX8iM0}1W^errtON^XS`^9?-
z96r1-<+_{3lar-fP(PLcy(~9Nr2?R}4t!QCQD{79<h9QJ%s(D?Rp_B!Fd3LTzFuxK
z)O|J31l<e-lgT3-$PrW>;S!;AcM$Rj6`cy`ewkQRc()OEP>SLHaUqd_aC=a>SzYzz
z6JAtN^Xjrt*C0&5L6?XvH1_(i=XT+mIf#isSQG=I^nfAUd|_?wYchBfSm*2KvdkiX
zKE$r&?eauGY(D=czus{BhTE?%S<;oRuitDZ5+~&VJ(cqO=2StE&0;(&ln0^JoYbO<
z_Z#f&T*=1%b}S{9v0~&$qdl=0nMED0)<Gfn`Spbh9Xr}{irqKVF^AhW((y)nPNC~V
z6#y#rm?OPLq5BGbJm|C0>kpAngu2G>3O2wly&e+De#jaz&))2M+PEqes^Xfu<<<7K
z1vAGaA6+VBMa8ptV+h)(c+b&Q-+h7;1-e~u!3iT2^b>RvhTm6|`he;IKj=y(51{RW
zxO$S$tV7{&m;<gXq0r=r+hlnK?=iSZ+hs{)s7Y3qVq|GWevOirS+o8ZuYg2V0B})i
zVeH%ysirPok_3Ys(D6&iHLDP^PoS^w!l3|eq~GXB<0`$ckl)cr+e#Tz=;P7$Rr0r9
z=yL~wc`3kM3V@e0cC>w!*fyR)y&RA)<uPZhp_Z-WA$J`GI)f3|&cHltCSf4e<4Gxw
z-*|!htJ&3ke;;GZF}9v$z?>E}$5p=(bFN62<d(4<-zy%}{Iq?#Cua(dF>Jrf5f7YF
z9T?S1=O<Q<fQ=0>5ZeNxMI0Unb^3;gVoj)9*deoS0%`*7T%!)L$eo$;fmsG;ZX*=W
z&)3F>V%sv%7Xs$`vSp7@;t&G5l}>X&S1=gr%_3g2=SYM*UGTC5D=MmD0@6+Mr0~X#
zbBY1%N&$B{KwT(#t2BUDieOb5#7nN4Sc;Bbs1{xgdt$lLOR4_yN(DX(eNHtW>ya6+
z0c_@4b26mCwr~Jq{rk8+&6`Jn-(0~I)eEBm1?qzA`B*Ix)9@L(8VsqqgGDrIP^7ee
z%gNcJy%uq%S3JuR)dO8AJ)XM{h3?K>D#EprHieWUoHT|olB1Sxn8cFV^9;Y_Y)G%$
zqH9q*A7FD5Q(o{<UYEV#`Fc79E{FR5hWlQNx#4REF24Ac?0xrHrt9kX=iw5J#lUWD
z1yvN?LUxYp=yp*=rw`d-)3|Qk4XKk(x}};DOQrPjqfs}nb&CIpZkF*-;&vpxyigZP
zv2K-80lSjH&Qi<XR!T3Yzb86j@p`-M&yZ!P04+e$zxxWLAk~?IWD203q3hhR0`uxs
zXpN}gGMe2GW{fZB8N=0pcdsyXw;0U6nodGe^*T=2mam)Zf-O_#xvlul6cA$&+#8~v
z&W(XmWdBi-V3aj{>mmrC&RV`KqX_n@iG)Z@I^xbfe*A{b`3@7=iINZSGQ%ED-=_UT
zIalzpWm&n`8S1ky^oD+OYsQQR%tMFXV+b&}`uad07yzxVj!mLL&djkHtBQfqfdMZF
ziW3e7W!VxreE9SAFTHece8q}QmC((PCMV0$qMMiGW+^oQS_*qF7Nl#P#$Rf{aws=T
zH3Og3uqEc79DxZ7w_&5<SCtGvT!9lAAS`TBpp}6(>ed>&R}guFUSkS{fw+o*9`Lp!
z6JMXz!3Z^j>ZBM;PUWf%21FpTG2#Jm*7m?!7uq+1E~Uh03}0sl(T|fJ6RYQCYQawu
zLPm~H4^R#bKF<)EB5#Hf9LNW30%dB@AqOwz{rNv6N)j3}h>Tz=WUFF;akQJhV#R+U
zn3L3Eveyap_JY&Y1S-laB8Z@b!(4t*v0N^)b7buJ-q`xYr=EJmm^}H6?A*Cs#k{Xt
z*%OZ@mOhq&(4qsN<?7|N2zZVMy}X(l`DmYMB_AUQ8ER8cQq|InOdZZ)Ah0l`K!h_?
zj|C%8qAwg-FtX*kuqSQcIyz3aI?Z6}6Tx-TkYzy5-7Nxu4WXk`Z%kbrPZI&qXxMv9
z?476Ii@u#)qZfs<6rr1gq?=PPl)eQF&f@d%{gDPA(1P*d5`z%LW$+#9v!}76>D#2Y
z4;OG84y;C70#{!7tfi`0Ta1G_2lTEku)Djt_nf;~@MA&njz+n&1p!?Zss9M(x^2&%
z^5BDy2M!%-9uE9!6%akzbn`-SqE;IEumR9gfV&uQu2#Uam@j*@$Z(|spOtp76dQaQ
z?IaoQF)_*jgM>OD)~@7&mZ|{YAp0+@BU4v6VB&p%EgOwS=y!A&NFHVkJIO(x8ap7i
zVGxp<7h6ID52${>%tTf=HNda!!h@HRtHqFdYT`tp3!vu}3fX;xvQI(S5k){%<MqiS
zeX`a~(#LS0lk94dwdZ`GmgN}w3`b*KBZ1|x@vEs*Q|<{T+-^!>&H=rn1Dw7-aL}$O
zEQu()sC9Mx5(PnBW7}2n_XG^%w5j*q_gr|}w&}%!cDVu3LbsRdWGU9cRf*qMCCOY#
zZkBR^yBOz6wOD$k*m)%!ES35a%ds9-!m`C{g=nEZYPyhX!hjtrMITV=J|EOw&w9w#
zUrW`&5i<bEbSDGq1ZUV36QpA}Qg<R-B>V7md&O^7L<PRkriicCAlQ1w_A4YhVsfF@
zajIbInm8`Ch0}CD3zf5dS21Pxh|JRE6nm6VXvt^tG)`vU@|dBRd!fvGw1vw%mtX!<
z1aM^M8F6nU5**NN3D9wtL+M2mK~eObYl6k;?0pAq`=lwq``xw)Pd>S-6wt0D8?O~3
zuk>%JoZoUK?2Kjk%uAJB-b}W{N;C3moO~ml+#HO84F?E>b5aKN0cA+3Dlz~ouq7RW
zy+#O9nE^-}F%HItMF8rtaD)1G3QM9+5{Re)t_q|<pe9C-4V%%H7|;5pM-)+7Rucei
ziB@hXtAGfof~d?$@6i>ViIAA)11<$8Wer@8uN1>D^A|^ysjcLqtzEm@nLGEV6a*zu
zHyD^(U0vV|40x%rqCX$EDrPbq(6N?_h93eJ|3X05w1(Do>t2}h-~at7#@^MjmRQD{
z-@MeZmGGXIC9{loy}VqeUCianSh4f5^qbQ*?yU~CY|PbV0f}7?>hkQ}wV66>%tjbM
zXV?{e4^Vk+V$dXW)CD2uQKukgRy3sui9ViqNCa?X`?${(y)`uf%(y?O`I(^H!4eXZ
zjO(|CLsri-Of|m*uP3#b(V@VbWD+@vXsGjs*ti@Jm9s*JS}JkNe=osLeBw)ns$%lK
z2jsLIH~=<k=>7d1(D~H|GV{7RuAOta1%Lb!plj@JZrHc)_L)EY;X~m)dnQ-gbAGhx
z=9Nm|tMvM)%zQlS<(0_vJXV0b+JR85e!<fqgSgPN9np2jODF<JI4V4sih{|gb}Ds*
z126ANujN{W=9)h{5|Haca<)a*C(0;P4!{=8k2RefD5Ay+_*tCPJQ<&Z8a}n4qiT$%
zD0^$z{%d<S$ZVsW@kz--`8s)i2Io-e`ITneg=S;&AMdHBcByOEeo&TMa-iPU#u>Ve
z)<kS#fq!c#<dwr^>|8~;MUsj5XTa`5vDoF)?z?Z-#0MUDFS7JEgKl1}jL=%kEZVu}
zo;z$ZL!tMDJh#v>#q6upw$a{aE!HcwuTqck$IXB+p>{s=X+Lm?OjqHo7zwSeE8Oz-
zgk29QMTdCuFfWFp2w>GzpPAz}WY3mh%~Z36)^*LVjOe<On?+m|=mNZR2||kJhN0u-
znmyYd`$y?U)gU+F@WPCw{kx&IDUFvsFr2M4pP|e4!qGmvTHmx)tF{==JTo6+vD1XI
z<b@*;uo-99Fbx(bE~x?}vUNp7j1|?dvEYgipMif!Z)<yJ<mH#oGAB-a(rj&w*V>v`
zZNK@k(&%~V(xrvVEaOctFGoW!cBUK;jJ%Q#mSQeFG08=5Sh&{`A1BpGv85&zxb1l}
z3cXGMV##g>B6hCNCb45jl4W=wPa$>G30Z_&1*u5|wX;+_?VDIUfS=Z{h)EzQ>YU@m
zf({pl$^qzJvJloVM~^zyMc2fYK!{g$%*-4qSAryz{8F~Xq`sHxCohGu2fy-_j~k7R
zuOK5&%lbJ3bK~Gaa2P{(6AA8Uq2|xX))i4fjeE~=K|nya3+n1@f3TzD?UU}jbN{3}
z?)a?Q-yc5Ob@O7KER}M$R1-_e@|lmdzr0$~OEoNtm5g-PD)33`2<8ZEhN>C9RxSd1
z0$8^=Vc5$S(~N^{r9IgLd|jJ3D>XuPC6@}O;q!o}7{s-0K@xSTIR({z;XZRw+XbJS
z%8E=+F(HIR!)6?BI(`{m4)~;-3+X4U$4+%!OO<P{jO0QY?gu*>E3br<Qpj;(#*C!)
zr7vBS2?pB<&`EO1rcz)sK(~(^0XrV&>HWyY-Au+yD8lNBR1Y0QrAhqmQHjU#eSLap
z-MVj2x#gDKO~3y2#q7jT$GXT?rL2gx41`w8<uatqQi}9Z%Gi<QmeKZAN>UjwGD|fi
zm`XgBw<Qlh^2vy8)q8eCg@ZEs%ljDm{!MQLtfZYxb$OK!B}tj=i*yxFoqk*)i72X{
z!AZBE?)L;WEuWENjdN9K<*rnC%MseVBXoBPe5#5M>@>MhGiQ`$9M=srgirlZP@kF{
z4LI|wBaYXbGG$82t*?L7e&v<x*dH5ErOA{R+d^h8Sh*`Ve<p)I0Ui3|8Q^2`5%l--
zQUPdlbO#0+w9T8}TmS5{YatkXB|Cq9N3A86QYDq~BC}LOa#^-)nGfb`)~p%%B&o7q
zUhKX?w^c$Lf3pKQ0$Jk7pWhv|($h%?=Q=i9c`?!e4nxNz_WcCkJwic7MFMUId<&uL
z`fOYg3|`gzYKO?E!(w8<z-3T?wkuUoRK?_=koK;5izQqyD)^m-s4plr#&ATNI$fRq
zoBGg6?egDTEf-470R4m$x@^mO*4e!IL&{*Y5w}OGu~@Fs8G<&ibs#dX++6))muHZ=
z*en{o>WsZpl|~z{*kZBS!IxgTA@cn5v+e2AU$&-BO^ip~{LKRBgTVZpbIvI#&{+)F
zk43<9Bp@sWc;5^_p8pu-hk@?DuB^-UEm4Fm5CMBreH2o`5TvtR3{34@EpaN4rHWuB
zmA=J=8dTuA4ZiPN6+Jn*Zte^YY^sW%<tf`EX(FIDbGVMOj4J%(___$}IT=Sx1f-pN
zB?+3IX^yVmSV_>X2KX1Ny(_1kcECD(c)PQ2-_<S*{>;2ftt4**jb(9NQNtK(xgcA2
zsnjn%PgGsR^19TfPF~ztY-#A}r#~Isvc)hLE!yDJ*PGP>^<%k(T)BWgBr~tHgi<Lc
zJ{B@dsh~erKwb>nF6KGt!H&hYwbm#0Uq*GvJEKA9sIP;Jkz{NyolB9YnkkCJx&ykj
z&GiAFfLWCSpt|b!0>$AxQ0e&05|7ak@jyFQJ<;_8td5XrNPcl#U$1vXw<1SmnR3SN
zhIckc-}aZW2J32oy}EMcCUei8BW_#UJ0PE-^GLJ_P9njzamM5!cKq>QN;fq<8A_#=
zvg1X_*}^54befN`B_Pi+b^NwEI^G)k^PjKRJ3987r=GgQ)pfUAP#^22&b4;0lmqCe
zpMLtt%)HVJyxJ_i7$B>)%u>p+N&)Li$SV1dk(sBAWHQ?O_fPSba0~@^wKQ-Rm&){b
znzvxsn&z``UC0}96jYah9W`+flR!}T$T6j#q?mw^Sjg?7i2_;(;v@#+VNC({j*xhG
zM<XG(&;+83=edqAxo|t9V#CDfmG>M?z+DW$t83Q0V(i$_>l{9O5ixW}0(Ablp}U2F
zdLSNO)qcSRpW3^2?UxzA|5Zz+CTXU596iUydg*y!Zux+Yb!h5f&z@_7k3DvYV%r<6
z#f#g=QevqF$k(zbXfe+j1m>$(uPz$6$D3YWj<38_nWdEN<IQhA+88`pLgCh!b@-28
zMhxB25(G=hKs?zuNK(<H^n1$61i^?oh=WwFR`Z=H99Z1JU4;Sy%x$56^FxUV0$nT=
z+~g99NY|(R_#QKsx1Ww_Ilj~o3CQ|+W_Dxfyl-oYCl4IW;62<;JMX-|ncKI=+{1_8
zE-rd<1<XXtRSwD!j|Up|?!CN!`SPE2pK{9PjwMU(9hf)ocExdCW#FzrBC(jarjr3&
z9E%qI*f6HM8#i9BKl$WxXlQuJnKP%a9FQ&-=#RGA=JMl0x4(gzR~o>_S}(68kXHiK
z$0Lvz`getbQ73Wu4`1pGf!1auU?65fDg}^AFyKsj_eosh+{wltr_u~CGwcU$ct3PZ
zFw#h35x^c0srtFe!13KM6s#n2kCKW->{@8-6g+iBeRR*IA~bl>a}>So1pKaOIfu`|
zq#|qt?K+Xi8p5X@7;idxrSx+?5uSJ6I%D6yHuun>%WR3EyAmLC<~}emVZx3bOM6$Z
zzTXW59J9VY6I-}&Q_reZ4<uHs_z(71zNlog2{)OX=QvIz_dMyCIZ#ifPJowQx>5Pt
z-&$ePq*vV{f}}@VAhcEteYovsoN>lrW?pFqUQH%G9xRBJ0`E#N_i6(>o;029|MRhg
zk!}d26{urGt(9@Sg%J(rgxC@mOH_kd5gmeTU!$r)lr7ne!T}zE9&0{vZC#||^8lyl
z>*={mgd;^HC1KJ~PNh+N4O~(E3{egsjyEY_+d0m}MbH!NjF>pY9W^BH1O|643TXQF
z38A;VaJ1^>g@U}gdi8qa@Zs(D{{2_Gl0;$&05$|5tG&I)HSFFU>^=9~L9qn8p}|Nk
zUAiN6;e`)p-u13q)s~iDLn!nzyL?K!@%SnEua{%&{rxN8x#vF3*t!A>7OaN}6O6Ht
zSSk(RW1)=?2ktVME4SQoOVQeQE%fs7%Fd7VRQ{p19eVxKf18`_U#^LU%LtTVY(x=K
zc_Rw!Iz(NDkS4qQ-qS~1O@S0c&d#(ATN$NSgD!8hOl%H;w?6FEVId8k((V;WS4WVi
zy5s>-0vDZi2;}$}kAdA9a7<7n9hsu}g(5OX5x}tvk!y>JjnMGQ@e_Y}#<8TAj|6DO
zPkwSSJo@M#g09Oig7Crx)h=AeFh)RZi(hcTHAil^;Wq^xyT3oEJoC&+uw~0CW%urP
zIemTS4h8I>X>s@T)Bjn!?z($n;>1j;pkB*B=+ThUf5Qzo_{{w5v(GMCIw^)_*NTZB
zO?6ntD<dCLW?^XE)BXI4CUamJ?&XO?x>utmgmqd1I7Z=1P%PM>BEaskFDPFaz#nAj
znFg$N!pn5!G?b7iZ)@3p?g}|!a&|@4cdlSJBdohZ>>9^5*Lf_QG;&ku=86<3r64HD
zF5X08OpoYi+#b+cGSvdrVkU-4w3Hi>p)Xsu)6uj?(_6N@+i~5H1Ab7`mSmFP-o014
z(dZvCC!EkR>U#}`ZFk|qBkt<eFT0mr_H$Uh`a4Qp-6L)=xY@-t;#BGcQS&9_wzXYm
z{rS(=xjj8QmBov9L!R^HXs^*yD~2wwFJHcVFqqehfmg~eUMZPnycgFh6nLv)O_Uui
z9Rr)2Thnb<dI3)?2JQiRIG}K59_GNUau7$Bt}({0v3-~onqi#p_4E|TD)o>xG0{Bj
z$tyx;3Fy8CPRTz2QpsKLf}!Mk;pK1z!>06q%kt~SfM_r03MNhx4(aANX<(o>q*I9k
z?b*7(={v`>R$fWa*A_2sSEfz-b#ndsciFbxfJZVV$wdIV8rr=1Ds$1IUs#hSrHXn#
z4GpGy^2rBb&6;)aj(6PWUV7=*l&Mqig}S=u*vZr8rqi?S?b|<PKmPdTZYs4|J^ADV
zr2=)e0K66~yi$Pv1~9LrUS7<YN-^<D$|y%0Bd@fBCI2y=G_g#(T9?@Jk2-eX(L5mM
zMXPkLxpPnexsFYp#e#<JPP-mnOHTunQR1$FJ&YMAbICi72vWMPU&@w}gNU7j(7;g>
zKpBO%l@oPZsAHR|__jv`Z)#}4FYzhu-|@@wB8cM{tnGpm0w{^VgwVwg9*tUgsUWY;
zp53o6TJ&G3mtTIHZ5UHs7@QEqs}MU*U2wyOmB!g;|2JdlRw2h9azC=~dGmT1>TFTo
z`qszPE3WuYb@}q|G4}qFd+^|5>-p!GGoWu*rc6mxlckRrt74@AeZ`6u{<(Vd%{Ny~
zFCS|SeY|St<3&F&bj(2V^=W}Ux3xDrir4ou;K?105e4d_Y(2ujJc^7Qt6C{wGb+5r
znhblgjSP$jAeP+YmBtm076emW^RqVz$aT%PD3X<qH;88A`%}IQL)8=UhR&3%2x{uW
zs)$Y%MHJsc){c5S>gZX+19onEwCNY2ShMPHZ4GJj299;jJpX1NIM5LL#y9@k>h8Wo
z7y5ZnXy~M$2WHN^JO1r&U+?O=Q|PgemNK~GK_@R4&_D5sPx#Dy)v8rh)61)o{aFk+
zjb$B{LNC$BbKo;4wWwhu-u<U9H!?I<MS_r5hSn>*h1Nqw^H_V5LBLDKENC|(kj@^2
zSn5ztG(qqV2M2r0WjQ6N`Jf&aC2;XMS=;aD>57aO*YPVPT3+Q{{v7HwM1FD#vQptL
z>TYEFwOv%#abBtqF5gy7a2@H~sJ2!<+-oQkCK$nU&Uw&y_0_5Nz`*Hdp5(%Ndc<N&
z!#j4QjWugts5WpH^PHnS5LzkbE;I8Sn2*N{&tjQ$wGxDCC8ren<F6%<<1G+~+TC4$
zxOt+h1bLDU0=Ur4c?vxPb(Jk`Y7@L<&xRO7%D(tc#(w*At`rW|y3fdU(R>0W7L-t;
zVIiwX1+=Ij7q6HobZ=tnuH-YP#u@k=L!|BFdsFkI8*B<~n0}V3EhdSql?pV6FMi<7
zpqb|%LkWfK@Y~+@u)TkOo7L8Kne0C&FS*j$`PSgTz{}>+r8`S`KeeowI2M3Dmg)Ux
zo_VGZ<||jO95)%BM{9ymt^DR=#n7?iPG|R{?{0OhDO96H*RX%2%UvxBqvsm~vtWnP
z3Td+sdIxqe=9}g07rP6|HCPCsZDBFQeF(sYMJK4g*n)ji(Jhi^Y@waILWaTPn4+*&
zkSZuz{&T6)B0k3u2<3>H=bjxhxj3ROyIohCGj9gXe5hM+<;wN!lIxG=_U%`(4<`Z=
zJLeZed-nW;9*O+HKK}TQQeS^8C6;P4^08p(Zvb;yW~l^#SDJ~JBfZorLFi~@<b^VH
z1oO7;=gyewB$kp)fsPgg)=V%8>+2Ulw;F_j_#TL-+BsTk<OR2Vw+cxowp5UdBoRj{
zzC}zvBr-?QddNNIQnw?1@{0bSR78uaEJ9w8l{yxY<U)1O1Dfw;H>~9LhTzIq;TXFW
z1Mq=Gi`un0bM7@aZamL5jOlcRBys{&b<38k*#7&RY1886yk@1{Do2~dQVNI<H%10?
zwGvI33mH>RySI^!QL9GHg?1kqi*|99cs$Y=6T8y{o7P*dlKXKZpms!B;k5}1V8Aw^
zvu6{eGJQF4mTQ(%jdMdZSN5_m2RElc&_$<-0)DL(YG#4KPs$1<M$PeDl;ov}fohoN
zeC6P`qr)o%Oz-DxA3U93ReilZ<GlWP$2HYTH(f3lh%5De3T{Dn`swWxzW((!+Vtta
zB$)+ubl$<pG$)&P-0?@Hy}fRv<Bs+>40rAoa!wXAwv;jDJRa#cTg>miSUkxw^Rv!6
zYs@k{OJ(BYy@SwLddy3?${1}7Ha3W-cTZ|C4!t+Xe%=a0(9X$opr^3~V#!Vz7}yP}
z=GjAdXP}^;mQTgFP!p%1BWmOn0ObihnwM%%&(j64W4#sbU=h|u0%+dzQ#w9b5UIX7
z^(m!sc*EDhLS33NxCNap+%2wawki;KB&?m-{$|q5hy2^>>df%kwf|!uI&{ctZ@)~D
z^mE5Bro#I5rzvlF%l&fFPbopoYO(Z6=;+1nA1kjp;`boUyd1r|+F)G`&>rtVUa9i8
zm5^$D-8@~VWOjTkz)*Gn#Hr9__d{3jE-<Yar@A?Rw=%ff5J-M;5Nw(>b5*pD!@wl6
z>9lBXpsRy{I(HeVdLVC#^0?I8A|QgPxE)^ywRsTsMVeH&*If1Af-N#dxs)LM>89Nm
zs@LE4`!}Oz{)XqOs*5_hI$^?Z%&l85R4l6{S8XwsIzidIIi#F--e1N;AhgtR<pTV8
z0Q5m%E<Y$&3okZUIo1KsqZ!Dn<tZQbJkTw*ukX2=c0vN$dwL<!pMux`z(7Cn`}lx&
zk4sV%*Gj~^ii$>>v23<jh6kvaHHx61seTqGo}YDLpH&+ofEndUNq)&&SJ)MUy5IMc
zG;lh{ZPL#{w3~DMTIu93r~2!%W^cRk(?aS=Kho9FvmTFSfR~@6&7a>DT(ROVbMxk@
z5RWgVz^K#PyIO5;->a-x@meJSx*Cjptm~ZD0?>(!a}tCb@drE7eg2QT&@m%DZ?t`-
zj4Nh8eITQaEq8q=a2#%2CH4*XIR9iQc8ms-yLvJyI1U0H6J|`dsX>8>5rqR|LUDPq
zEhV79fP-oLF1QR)ZMLsJV{`9vmQi3kYePzPAsF$Pajx|w>eiyB9(4^;glwY-d4>Gx
zRI|ku1-Vc%LHQ(Q=2cg8{F>^v(CYEM()JuMxxO88!2JFDLh6aPl>?xaVDr`To)>f6
z-1#<jYO?-Y-}-R+&O0A9UU=abs^dg(PRy)Z_lw}<$$Ry8z3aJZ0(Y$?mhlw$Eao|S
zKB$!o;3I+SXuvxXa1}bP68kF&<mHYlW^$+|u&Zhmqo9W;sxVDuz>R<&*1d5dw%!!c
zKxfQa4XdDr*zp1?I01!MP;@nqh9hw9k7Z$7f0CzYQs*CXl-PnngX?!0N*RM6Yofm>
z`O6)VL}b{58#&`x!|_?aF4+~i<<9mCdbvWj!7{yuyXF5{PR|{hGIa5+LV&s!NkA2s
zRSFmz{^&=4qb*tTx6FV2*DsX*{&Vqj%sleQBjFh{PSaMd+*>Klyj<`eYXGk$pbt{U
z3U!jm`$~1JRKm?N(zarqE2TPH3O#nY<Erg&DP{~7+_Ho9>v<qdk@~?YUhyqVBnmR%
z#-Jlw5F;WHC>mDyg0)+Ar=rm9PK3H>3j;-!yGufn_ncQe6fE2natH@#MbtN^wsb-=
zaRp1K%8R*<M&ekUt!VzeuKRj9F>!8_6cdTdn`T%oy~cf44d+g&gu|p#OF8eYnCHr4
z^ySO<*WG&ST5Z*;Yq6{?n-v=}ci;WAy>sWp;f^!XYZSA6sN)QG>`I*bmHI7K8W)Co
zAN)5er-PQGmzSc6ml`0gbdYm2)-_&I_R9%mmg{P<8I|pcty|XO#8(B`HqyI;+(qIQ
z+@k7<x+s6Ev2~R#CPVtI@hQ-6Mj@8&gsj=enK=R|Hfg3Zw?WPC_eq7ZxH~4~yH^w`
ztCKwMX{qIbE_#4!s_$088#-g;=TnK?u+ZMAlMym}SLr&VPJQbS6(#7r*);P)#w)t+
zYNwyRNnN<`XZEgLGhkp~wf*|*XEHGPwGxR~<3%$+78v?y&zJLrG%}r!*9^~cLAzF<
zeyla57;0NA_4>Ss-Sv(rCK3sD9MlxAq-@ZuYfd%H)qu)=^a`Y19oBWXLW=#wdlP%W
zw&L9Lt%$&+>G-wEDM^Sr2w6gQp^Q*f$STCp@zmC&w}{})Gf748QxiUNv^-KG5d~OP
z|H6W^{;VmkGPv``o?yGFmm}(u9b=)JS3{;LHxN4HWqoUFN`LEHA979eX?Oqri>$x@
zeYt+_x&Mn!nDMNcmkZ!y8Tib9JP6E@nUD7j&vMiA%PEpotljTe1#*0x%I=+{S$p3%
zfeLPkw0;C(3|I!R{4KU`WA_N;DbV2QjuuEVpzMwB1<T6hf|jIzlPrQjij^2`*JtWs
z(K-$_aBS3^bG|4(AUm#q463=pI}?cvPke8@*Qn<83Uyt-9UZqWie?p5@rx!7P&!VH
zsu%tkmB?xaI>!p=OVP}SyJ;t#v|qdM!k@XR)M01i#^cn*i}%-xjhD*4k7huZ*X8Cy
zZwP>v6Ywl17+Oqlv(Rm&I9qDHUh81zXvZ!lKpF~7KAefWTwDJC*?SWh+p_CAY@a*4
zp{8Gd{=Y{KYBs4R)uI@2kV%;m8IiVRQl=(ALFhP$6vvPN#{r@wjsYW(Z3rHuBu<n-
zNq``TB1TannTcYH0wS4?BT<sul-LxT&2D!0@8J*qe~oXr<H_CU?sfO6&p*^~?|ZMR
zS&iyn_3FO+?t4{loqg6`do4fAx2O=cbkm{C<JI?{76JY4ty2|{my~8Nk}WfLY%KT(
z07n`S12R{~shDt)$P-<KUHz4=FV#A92Kb3o(S?LLqXIX+MXssc7P&{umHtw7j`39J
z8zbr#d445mp1}8r89%X={o04t;~)Foc{e&2r6GF1W8%N?7yjU0ld$t19-61&R@an^
z1M`C@SK9hnTes~8)b|VeU4r+1uk-ew`M<PT0r|a-S?Ry&)oW71aubxnyY?P8j&Cl7
zcTRFc|IgMMjVjdK+`U3kkTpK$*5j<1BhRhpVQy<rZO94vc+T}qL~_WtCxu$rGS$Nr
ziSsWvY9jzDCX}zaLU#*5pd31D*Qbf+=qMU=>;(9JyZP__gEjl9_Zo_hEqC4pXMWgf
zdl4v><6wz<SU`^st1s`WO5g8&4_bZC3)Jrh$ZhM$+m<KZ>9*y;qqj!FQ#d-J`T{!b
zQut{0Z~6T8I&ImIwkNMrStPCk4x}*|h`J;cE8G&iwKP4M5&;j+Ku$&_i0(1VdXR`0
z1x^dH88y?M{PRqH&bKkh!*B~b0GN4&GJWcNS|TsuD6E4m+?ylXeb09BnUAamKmNH{
z@#c%5FFz_M9|gEi0>v_G4*i}qOWRfYVW^TWs_$7>;rDyq^8)h2P+Il(QBj72XG*e<
z2Mx_)>&o15-G+XDa*AHB{;YPVS1WLz)Z_iqs0>22qlFDE1=_eox)52F4|4ULgXb0+
zB^7=IWB)MZavm*#j_(_zAPs5<6?{@CM{b1j!H$6!6nM8J`9J^p(themL;d2QV7(}f
z%&s}}qg3i$ROyQj=xrZ&$I5)(eECr*l|`t|_fv%*wpw2V&OA+1>IKVRN$l?9;G$i1
zE@SmyESKr!EUtk0Mg@c;BCpZNAGtIl3juU1q`ONXimCB+aX@Tqr^CY2iwDA!V_YA%
z^XDj$YMa!Lg^Vg-0{FwABDeL*!MCv<J`rD-f_eJ59wc(qju}5OqR;&K75emN7nw6Z
z?6tHB>TT02$DLxCCFSxBocUp=K-(DYKPqS+1gP5p_5D`ivuJkicdD}us->XiuZ_(%
zEm7Ds8@V!n$@J(&JFLKQhw^N@rc<N}j)jk&OlyA@Hw47$mkLCeS6H{K5pb9ag-kIk
zlv8Jrb~d?zHb)uj`4|ib@gNe@D`}y|U*N@^`4_2=3oi`tc!3d@6&nBsdMo^VYJczV
zmF1`YiJ|4}q;lnLHbUD3?zRE_Fo4`uqqD8X=Ur)*HmdZt$M?HxcpiifIcycaUutE)
z&CWZ4@SV2)T~RG@bn4k@_G%4w0;XF*L|+N|G#Xv4fHiS9PR7+gh0-bv#HV=Vzbfg^
zt%Wok@^F!*jeJ^DDMbz7X|ALDNv2gjnwySiho_57gCfv^kLU4!aQOVk?eaf`=D}nr
zt~(U&+${{CXGk^bZV_?MVe)ty{_+p?@_*-7zS#&}9D1coie*0_+BRq(_PD#!ENwMB
z+irrk-4NZ+<L>8=x(zwvK`QctUSr!-%OE=Ya+1|VbICwheLj`!&}6dhoD$OtOotUh
zUR(|7!g@$&s((+f#I&?j4-pxc7s?VuOMkMlNh@(&RmNG<-~@03&~s6v_;d@?BBN;?
zFhK&wm<kQ0vUaIPg~}95Pe;y{18nl;K1)3YE{tr+%df!pNNjhj$K0C!;eUSGe&Qd8
zwAWE_mRj?9@a0|7D+g_M&YNQCszPt82^!t0BJ4_fxL?4(Q&V;pK)&CqyenP#L8+C)
z7-$_;p4jhQemP5Q({OxhlF(LFjGqrfda|mxzvXm9XVwC;y}&spmd<c1a6Gh|3Jq&2
z<JBEQ{r>st9JidjkR1;pH!Q^B7QW>?a?d}9XF6BltUy8V1Y|0)__a6*q!r2}uWxsa
zQ_+y~0Fn^^XP_<vl{XG#8q{4wtj*XU$S&-b|I=SRW&ir$UnJiAsE@x0jnG97cJ7Ks
z=>pKBgMjZW8lFd`QMzt&w&|MKCbiPG<?Y>W8}u$+f0gAWeM37{3H+uYriaf4wAwSZ
zaTa^BxF(~eC}vRS6`=awjrdoOSN-shU+>da8qqYpUi~1W%+yIka5)SmXo9bhZ)fn0
zyZ{PR;c=wRP+Vas^ox=6AQT!t<_yq$eGJ~P60oHCp~wowAW{US4OjiqSN^jsd**+P
z?AvafM9#boYNc)JWf8UKi$=NJk!D$x0imPPEb{{O{Z{mCQY&3GI`4MdAb#}qX@z)v
z>uQB~eJ_By_BOE<SQ<CAX?V210&)iQdd#2b%eP{>IgTn&zEyqJj0Fz}O(Y_YF}D!a
zOK57Dpu>1kxxl*CapHj&&}_Z%3eP7ULD8tX3z%t1rYM6o`>2OuEl1?4+zR#5i_~J5
zud&)=472Dn|4Eqsr~m#*=F7XR!e?ELci9+S6ieK@Hb7^|mv_|!JxSi>ZAur9!kOdt
zvIsL1^j=D>ePqD0M5FnT&}?&68&@c6!kQzu!j(V29n%XN{pviU3b3~ukCq<QK${j`
zl}rlGkQZ__9f?XN@)RxrYn(3#RJzE3%%9A$M^d$;(K!ff-W*DoLOA!RT7c55UN{2r
zJZD<QaqRY`zee=`{?~o`UC-WYv0WsNyi00j-h)GnG)y#aK#vYXn;d85%5eemqmJ{p
zMaSHJ99!WUv-~Ghnmp3CrZJ`}!CjMPd&ZK}$+ushg!IL${R%X58c(k`0Ls-d|I1Vg
z=n^YcH-j((JkuP^gRd_WZBMAtk0UZJkkS3ZOANyJKY!$<9`6jjdRp}Zz*+K`AnB;o
zMl716MxK|OJT<@ZixrrEbd~_z1>hgY!J)2s^y8L7bYGg~C{_9_D3znczO~iVJSv^C
z2x&rxrCQ=(`Pr!*5xXbW;9DP4dJZOa5nNC1Y^H{O?`l=Yo04|MFFOEt_Y)AtfRE$6
zjry50{lWCcvJ4OHPKCQR3f8EDd7?A+QiK|S&TH-)&mb0CfkL=&OpJmif~Ps8j7Bu^
zP9`Zj^|-hBkxBaN9~u;&{QPmJQ)XSM&$|gaZvgL<Grtok9u%yP0uWu8YaJHU_xsVM
zFH76h%3(S4dr>V>c<O6ud9C&cw@5wloD{8XXqTj{fc*6(S9z!TD;1d9n!X5yk}*22
zPk|>%^oE5PbbFDG>AS#+UJce`35kv+pxF%&#r40L*x)+pqOC1<`NMr**3!mI92n7X
z<pqX=rN>kB2=uv+CfZ~zqu=?ZBLDEW1+<o)B(A)TD!gra<v36*v!+~*JkEa-9TB^r
zU=CZ6&%-J4Aos(y^@1~3Cb@0AOc4CwfVNcXg-y49=h~2V@}L68*Q(04aMDCDGEALt
z0uWc<P@%Zd`%oL3sKCQe2a3q(uuotVjC+yNBYg>dMrF-k7gk66BWZ5#kvLKf@|Y+M
zWC3BmJ@BX<M-fGn$J5^b{FnR5U-@rOY9n-BgF{_VEXT>?d}ibPM`?JTB;`um{COMH
zN}Iz$_qtykU$`<!AQM5wEQVXa_X_lWf1^h?l900edIf?>J&g(9aa#j<;0*_bMwKf?
zuH*MS<db9y>ZsT;{%=dI%t`oiKS2mKxbSBwCE$4?x^sYhD4s2a*K~!SOyE5>uSc~P
z%$I&XGSB|+p?&PeB7^cQfV~U3;z_W??V56Fon~p<CGoh1P#guwyENQtn=|i47q5>D
zf@OVrMS#5m%&$!%dbQ|PK)zE|(Bnp3V#UWCWOpIeGgBZLKsTsq6qoI3v{FXHGZNY1
za<7&&S^;ObI5hMBHOO1562?UI;;6>)w1(ns?zr(%HRk+p!H-p_Ukvm31uFWY9FC*U
z{Oy(WZ~WwOq*IOqXWlk=pJYH^2%6=%R_ARsLc63^y5P+F(StWrTY7(3N{R62tumxP
z7!4_iEM?h7Ls2+d+{@mK#9WI(G8eO}QigXJG%*-dl3Lf6q^cJNdkhY7rHo0>#(6Q)
z3{hC>y2mQ&CTB0!=IE(qqRo-WEUi}TuHhNUpixpkk6iTbu9<3I{fTMt+rQW^KJwH_
z;LN+`%ik!R`7CIaZ=hN31SGSzwmr&y<^}3)G(x+kR=VQMZ84l?Wpq6!dm)s73M(>2
zu57=MFS#V5&7D_h(DyvdNog6TTDVeX?%DxnpcIHL)#%Dq$e~Vgg13evA~<XYR`yic
zO>0ef9|l}PuQ2Z&O2y9$#k5daqmw^oDyht6V2D9{cPwUI`Ck2d9H|U4kALfz;{4CN
z?@pfQZ)CoF7WB$V;mnWH`1}UWyz5ENu4$I8LH#hz(u08YqIs9!>wdM?eE8MWW*7SM
zGX`_6WWQ(zG_g?yp4T1JL6y?PxCz(Y3qaY_6>yenR2+ZLiV|4aG7XZ8vmt1bOeU4w
z=)K4dM-nd=OQ<tf>xML_!r9qob#oL>jjSz)KT9eGw}EKfcPAo~l*~|2L(K%LG*Z)a
z^qy(-nI9SEpZ=9a0OCcg*4qN^<3_O@g*xeMoc}1z&^ADOo}k_Z?Xn0!ew5#994vix
zYBxW)f+lG7&&w3jEfZ5R-KuU#YtEUiZF{O1VQ@qY9K2H+J-5ge`L?M@4!M%fN=*}j
z4|ymRI{zFa`>5C*Ws^$AXjubpE>%5O*oAjK#MeRk$csi#ra}9%h}7kH4c@5IBe_<R
zFzBN9FaN7N|DOLlv=40^mnLZ2eEF>Cl{X5YA9|dBR+P$7xbe1i<!y#doV2{p``s1=
zE6?S$A+(91X@zpn2N9VH8M)~RuW_!bQBm`yU>qOd4k@CO9&)48dVVW;O?d$9LAiuN
zvGj$)VQ}VV=*CzRiCp1cdK|j-tZu#Cf&+BXw=+c)$%ua`mA@4##|dym4(Y51vii8t
zfWt4&q`lAl$Ajr#|Bp^8SKf6K^r+l;*C4;>6?!yF^Q@zC<84*hcLMAE0P%6F$lLU0
z`G(ghSbcF?p`#T*d^VrbRz7l3Z;rl5YA|d-(^I`TJ-F8p?N#@QtIwsC3ZRE#Y9#>6
zKpzW_9fsQc1btJ;&R}O+(<cM5(<SiPd3`_T)42jqWu%`M8Rv;EPK=oF#3U%>leSP<
zW8wv8kWmVTKb!<Ic=2bl@b~`vD1YCx$GHjGHMR0a<;=TkeBPI4X|sxJn;Y+v4_`!s
ztwrO^-5*YH`f4s*`3@EI;&wsFv<5&1xU<86;@Hsn)sUE}V3o?+a##U(P>;n2+DMey
zf7&dkRG7j6GT+XedEh;!YhcDYn(sVZ1dNd*>Z)Z@S4AuING?u^y!fmPrTUh|#K|6W
zyisbPA14CbqI|JZod@Eq2x@66)1(NTwu9gNMZ5E!@2l=z-u^nziWi@CBlNg5K^K8y
z=@QWQ?V7kK62z0DD?bRIy^x%Fc=ok4S7)pDuMB8qo#@hXK+6@V_68Mb54h~E?q8MG
z1-mEqYVL&<CMHyXV@l(toiS}p<Epx5C{CSb92Nak#`zIIv75*rbWsoUFd(lDbetc7
z7BJ`n&kh|t29SF2N0)HtNUkN7(SB#>71kU&%MuYL&5}merK73pC?GzZr$_D9M{Mu^
z_;{TD@Naer)UzHOnnx4#jmViF1<<2e0{L+t5IP8*a<Aj=M(ONlvAAC)JuA+<7hb-x
zDOqgG>}wu!kOYj)tphp6<&bad8!CG>uv2WD{u@?=(=4Euc2Ch3ovEtvt*XksMww^4
z6-bj4I`plHghWSsNBQ$Yt9OJrXQirW5Dv}UI)m}%xV{fB4s7JLH5M*i8mS0~W&^K6
zrdC6%4OX|apxS|vt9UC?N2Yp8^Mzk3(holt*t6qBr&GG9){kQo^e_N@6p(JC@wu;Y
z{&~<W$6<Vbzr6ar!1^c^c^mg{>$ccjzLh#sysplze3EFp89*5*qo@M*zOAcrSEUQB
zQkB#@X`jBlagNdorAO1}Di9qt^b7cOWPC#3&A`i&L->$0=<>f%yaYn8@MLHx23(w0
zwC(w;u;efbbQp<;g<#{0v3=(0Sy9s$>V_YLtMoiqiU$Kku<Q*Q>1FmnF!*18Iv)R(
zpF3_``Mmk^Z#F>>4&uk2X6YK#@AYvUbmd2#^1R<|Wf^f@`%-DlBho8$U|7nr?9viC
zhecC?U>#6F?%x`vua5`xrR(d}QPT=spR4YZIba^hh(3cU4;*0xAIcbZNo2ZXNy40&
zS6>;_pq&)Tf#;=~bn)%3Vzz3&6^J{cn;ea5-a7~PU8-+PQD{>XjZdQ+huUk#=)!=i
zKC@r@*&zIrUk>tjUOBGK(0NXSb^+eUnKR!HpdU+`Wfq{m-zvQ8;O1F#=69lG?)1l#
zS0!p_hJTt<_DJMPUO}_Kij>d@r)=sbCRgyGr3(D%rL6&d`TAN_$&V`_f4=&+l*iJl
z7drCLb1HOW^ra5`FruyqS3VI#Ef{yf%LTy_Q!m&VMqQf|ZLmVs()g-}wfry?PZr)C
zU~q^jC8k%Hn(-%EW05yHe!g0^^1-kFQg8Pif8K9~&XXhW64bk(S7ueEpA<m9?>PT)
z@>#hbJ<*lMyel9-EJxlYXTJCLrDqe`{8*psa8tu@DT)y*42+*V!C$_((WfuJzEpwZ
zR#jEMT!E%-nvJNa-KadmBV<~WDGuhQneT?BEu@aH!d)K9uu-U0c`k-pf!Ui(#FaRP
zij22_lmg6wG&=k8xXy)9M)>*h+~AO@)iS&yI8A)1e7##ts@Ep#|Hj9o>0kWKMWj<^
z&6juG?3_2n(iV+!(DQr)XMU2JocF6L?{&-~>B{$0HP4ze_pc!|%U^ecL!=e;?GB0-
ze&-d?UD@u_mtJ3X-1s=T(f}-`LeaoviD4oQ%|cRvNE{VWsXJ3HQujl6t~fvyx&_Tp
zXQ_)kPXTZaoQ50`3Kqw|3*eX19G!?o03j^8P|ds%8V0rkQLs01&P}-X{@|C&<hvg;
z<(Zi@Lub(lU8M2;liCD56lZ>zL7}djoU_!AA7&@8AMkIRS~)7Px6PT?cU*lrv#`Qt
zmfSXJKmc{55xp|%(^I#WDYuD>j_dc-XQi3$luXcZs*O#Hj84&)b2aTeSE}32uhyJ-
zDc<O?!R02YqeV!;8MKRkeNI+r>*IRfU{fHCQ|9ZzuQyJNq+aKUt+S%8$-QvsSgZqb
zlRc32|F@rx$3JnbnxTuxmoExu-X?&zS)oUVc{9I}!X{>2k?)rlISe0u7|#4&#|E_e
z+O+h1&FyXe=4DO0yf*34AMUPIfSu6x_{9qNY*UrPJ{KX)WvR_ZzL}ezu&{N8T*6y(
z_0B+!3LbHCtHT<|G0yJ>kaz(|^_)l_V&J#8g<|l+!4-CBbg&4#I9J-PiqBMO;|7JK
z8gEjItkOX4JkfJMTSQ;_<#3<P&@Kmv7R^0z5onj=O1bQNoPQCToQnkNUGV4gqE-$|
ztK5F9F>5#TJ%3!^2<opT6_8KYD$q--iu^^Va^bV0ftgDlXdt&mk!rb@dRqPZ&WDY*
z-0ETw`4o)s;+gz>;-wS?9$gXzXjV!fg;gM)7V7d?$gol&6bn*~n5Bv2amrGIq>Dm1
z`x@|VWS9Q0pSN32{P3bQLc6HeXQ@A5#3txGD3>GCEM3zmK8U<gCp{0-$ehK%&>qg5
z&c1E~+k`j+&`~AdEF$_B)71(@GuqmHu>w-N$40iW%5CF&N4*#|ze0!vSIPV@C=gV>
zd>@|n<cfThs79UF3Jm_>Y4{CMDY#wb4WIM?d7;9eQ!T)80nx6)roEmpSV%y<G>eYJ
z&pFD)$Y9a*)(_>q-+q6XeB}2QtqFS2bDY!&xi$d2tBQO-fPP?|`9XN-<4Us}hHpOz
zx4s{0<)B>mEC+`05r+?KOkLUPRpvsmOv`}&FkNFeLE4>MarZ^s8f<5cX>3^>C^{Qj
zIgcMgk>(1_xUDGbreq+fyeaL)p2u+yMD-F16*3SXbhr@k<1God%{;vUZQ_MwxJq1t
zG_2U^`o8D98WggVfU#J!SP9L-bdF<UhX3Lp+2n)oBioxvh((v~iHkJezi6>?T~RKF
z9_R0>$+_q>OV^FigI3^O(I`i4e%6CQ!z{PqX7%lQ1LST3($E*}ssr>%@=8_3mbDWi
zM&!kz5VQ#zrHGUh+Pnd8P$RIgMFW#$K!+<|__gG68{;fj^~{;O=4hY`j`5rhgI;|+
zALo=a!hbv87E;|h84Z30kMAZ^t?JOhyGJs>1aFxVFI_NxPr3B#KVo)&<X33MAM*tE
zc}2+0vI#oND*V3E#DjqHQK^yR9tC&5%K4x`dzfSA-TcJwF)!mQ)tBq!sX@LPF4Jzc
z=}X2}D*()#46va#Wb7XqprA#d7dJw8u=OEijV`o8M&}VE;SLdN+TE#I?V?E<i+Tk>
zZbk7zvI_vM!Wwe;lNa)M@Jn|KlgJcds5OWc$kF)B3e~C`Z-^);^|8Ry50;+(2l@CT
z|CshERa_L4t}cTqx};a;$(hfh33?=&Wl{9wvmDbu2;d)<T4{s-Zksc|AGkZ}#16hn
zX8JDt{ME2eubUnf>1G9T(|S}M)u}WHF(hO~|IKA|C;=7lw{5031;iuq@LK814ggJ3
z8Tp5V(U#sIktkEreD8EAc=1vn&PgR1#1qk#8v$X?63qi`ZerJ9Mbc=5n{NUyq+#km
z)>I<#0@v`(9>|w|{inm7zx;Ev2INKH%i99(S@GzLTA?3#od2kN`C$QhKfuz}nEpX1
zlKoc0vq%r>dSJ*=8hKs;U;jC4rw&}VtIw|`TV&E(6!#Q}jd+TOp}HBuU=gGBMjDZ^
z1XF<C;M<+KR;oNYyi)j_(^MO$&hRP{YDUhR<~oqnG(Ai8d*P|kRMal1C}cu!=Kwog
zril1^$GK<q_eK;fP`ZFahdPEN?-cUILOz4u^FLdLU;iIW{-zs?LaDUPm(Pk`Swzmf
z%PRc9<NSx=%V$Ni?3W5SY*TX<Bl`!TK)R~Fk32BsK(VZVYVb-yTW(<Jk9Q`tJFQVQ
z%S4wgAiFdWP&2hE#aYVoXnqCyYp1HOSI8{@<N-W`^e_@dOQb17ZXppFV=SQA_eS`K
zqCsaaz3@O3xt|zNGDh7O6PX5$WdMks75OnkZ&=8pxruTAUVVRlEbKJ+gAKgKllnYp
zmO68=emz(;No-UuefDn$TR-)a$C)c%6ux{GocSyP{K%Ynm&RIM&@6WYqPsoWuDJAr
z{_LRC%27G=t~m2%;kGNUWOTIxJWG$q16mrAc$*Wg4-K7O3!8w7*Cr)d=EAGbTcd)K
z3gI?JIbFYz)6E+tt*q6+zPzH`c_><RH##qX8hSs2rk#0fXICqgH2li}q)dgtObg-7
zmNY{&kVOG@0CB8(aZoE|p;N02(ry6|JA$%MsbeNlby=<)`clsezTipM{`H^8`d|13
znttb(7r6=A246nUCTN${_o7tjhoV^)B~)S-;JshUXkJc<i@=$aqq~={XBEP&hjmQc
zpekh<$X7Yjvu|p>I0sTxUq8AUIc}t^fbP+-SNoj^`EhF}qvvl-=|(cGb35bOZv`Xu
zjFL>ZG_h@gRKSt|#Gw<I936`fIYOLWG#%BH2MN%pxz~`zAdqnFplOf;8cLJXX~yF^
zbqI?AKMqqp?zISNt6g4v8V5$9jF3`<xH(>wqSfF1FY@VkeBXXt6&IlqdK{Xd$Bi>@
z6VUhVns^xMrHck;TiKnn_FkDawK5CN+<jlJ+{^@$!DYia5bl9aTi!!J1y|<cZEgU-
zhAvg5@cME{U%pw=R+%=OIn1*7JT8k<s_mXs$EDS1I5aw&QG8odI(ezV6h)yP<U}fW
z<l`n1V9_X2NODCpeN0xw@NK(=9*gJ50nrhu85ed4R(2PVJ;LWDusa_qhQIZZVEpmV
z&8zA@?oH5>&YAD0@p)I8<uKLtqDl=Hr6O;WT3IB{-1)QEGdJrX&OJYI&<-$jqxO*z
zLfQ+ea6oPy|NPo?jjp8w%6lu+D{fVfx6=eY@OfZ-g`p%@u}9u$zId=?;^6`+r4YUw
z8gU=2-4K&ZnvSRSWf$I<zpK=<`Zxw~s8}Xq&1<A-8j1yOD8o!fjKNY#J2G)SSj3A+
zCOY*bm1b`LssGZB|LnWS4zh1HLFYre9JdsrLyz;f&6n@DNjeW8@4|bf?TWmO>buS6
zvMJAP<lrl~3JpXGQvKWT-a$>bVBFIRy;4?R?<C9g!p@}%AbG&(s`EHELDA^5OIas&
zrZw#Xj~1p}GMNm81aTr139_Q0d_i8PUb|8-pgl17!`wD}V-O`5g*tU=%x(6*Lc!#v
zR{ne((>~Y*ICTv73dE9tzh^+-+~xBnk4J0&^b_gkCw}dlP0;z#E{g!@osRP_B42)7
zfV}I9e7}oD7o53&yDgW}!kWDLLF6oOg(tQUU4wtII#|Opy>S^=AbycH(&Y*~N3=8f
z(+c<|wR}+k6dX8w$iY*GGQ5)kEWL-}<9eQ509j2YGSWN+@Gc8g6UmsrHG3}C9mk-X
z=h{$3)P_%TH)%+6t-R3iAQO0Wz8}2P0~zmUl@4_AS@`rnq~If;rE)p#iXVTYG(nF$
zXMU6lJ(`vO_##m&hvD1j+3Z{d&irn-^Y^7SlM3NhF%9HEoxETQITrfv7q`yROOtcX
z5_g>ZF(v7iYiv3TS!xP<_x0MaZfNrN+*sxKH>N<?iv=V9v6nn#NI7znhGbT#pE<HY
zBQMj_-7b1@-+q@o^RHCwa@}sB&;<ip_@RVj6r?i9JXe6{g(8UR-2|UwBs2>zB&Eq7
z$(DZmlXmA5zdGwi=&X~57O5Iv6wdsp75hCKpltv-K*qlV`J#dPej1#|g<9#t8Sx-h
zdQc%#VZ)v3N2{t%0R>@%j&OiaqdcakH!ssp5z}b;bxN|=IB3oR8j(iExdfrS=D}TL
zn*i)?TAz1iSc5O~)vVp-DxGN<2J974xHv#3t=|0!Q1XV1P&uO!YOOjZ2BhH@F#mF)
z6XJxpv8%fU06Pgk?*cNynv2IU6DChxGnRuiWD#*2nEunhV0XXwH&C6=qY=93LqoFy
z@8baAca<j23drY8xy+&>@4DGJYiGp!Rp~r9RM=q0dL_6Q`&ols1zImB>-5$1LIu<b
zZR|W<-9B<7^m(bau}J%IwzeWI%wUr%^b7Oma9LzP<)0x~nK^G493j;+SLKi(q9S&H
zO7gQpxo<w#L>iXXYnJk7>QOXopvBK;V<bK;RI6ZOSpafVSLD#RV`1R)vD$?f9|!Q#
zh=rwqHTeT}__<Hf?k8I_;p(~x+GQm^?`nJz0R5l<A9dwfzKD&_MXkuY457HwdG~YM
ze(4tXJEd@^hDaO$KNd@gjp@tTgLETZsw(m8bwEW>I&fzH@knfMV^MpsFeVmD-5BnJ
zdfKMp2rqLC=I|#|GN{m*CwK0Q@-qfeP%wy>BX1Xxc@_ZVaqs}-EK}KIQmV2AA<nLH
z59=KTEDLO@Q>$=<L<1Jo3}1gCP11Du%+D3OlV59F*)j`Y@5<wR-n7fSLo4=6vD}qr
zIce0&qF3biqcpls6FSO-Er0C;m4-Q6+Au5hLhw)pkR|QxK2ue=TMdT{PP~w5%bv&z
ztp}2&m;VXs0v;_m2a$5$+;oIgk&F%tISNN6M2lS2DY%y5u;#m)tWV*+At5Yf6yJyu
z7vkYuj;YW<xzI9jYjglD15N`8kLFzgSO4JY`8MAx#st|T;p*o<Qf&Y0|D-F9yvqvw
zjnV||8o&<<@OPzI7Txu*OYq*$eY$RT9;U+Ynlry2=$AH_kl9=5Uhkcw>-}@p56855
z>#G%b<qiag{TiqdF2NufhDv1^@+5!NF{g$a1;<sl8xWEzo`hGY(&NOf${8`F1I~RS
z*_}9ld7DEc(v6&VOJB9;#%lP4OCw^y4(bIU_Z}~h`x5EnV9}Z0)}RG95BVdmX}I$A
z-`d&wp5NNfRA^g(f80TRQB#O!Nx6Ij%`%U1{6(Nsx|;gznp&APKYpj%+`klzjUZK7
z!P>R8%QT9IG#Ov1s?KXV2}#0X8>K8tI0<@5LhOI;fR5_XdAKM71esqSN`zcmsLnjQ
zO_36Mp%xMHK}kZMZB6s=&yrm8K3yfwCR#$rV9L~ZQ?0xxIG$ggbFX$OsGFJf+Ts?j
zOe*hjrj1hO{P~>xGqP&>g@s_8jo)X7UwAi--~UI8+yw2KFK+{+7ZK3gtk~~5&OZwf
zo+Wp_NEP{hV&P`RnYTr^_|Gj6kJ%y~(2dnol$Imf-FUvLxYH(pIq;M&PB$L!HMv67
zy0#=$uz+qN2|f(Qy+9-9+|Ut*drHs$TzppeVYz~yWEz0MGz|it9iT@-fk<<bp9bHj
z6suck!~5dcIGXDCKD$8j;;}uccMI<MXA+(fY9rSTEQx13KL<aUIxqCOJNp4RJ1#x-
zH}lc^e(;UXm(QABnHOh%RDi#41N68xJ`Y2!%&H>47eLNBgyJa8&%64wP(h=rwEg<@
zCMDaiQ<h3tLm(56k`%-hH%~$`81^b)U0$s!>_H8Bq0kXrExQr;paxx*8p58It6Jv8
z`J4>ED+4vOf_WAag?iAJOVyi-RjsoYKrW}PId}&D72(ZYr7z?^gS2a;rurP<Uk)Wq
zlPfAMOQwy=QbRIIsqk}Yj5ZV#$@srf>i{%MO|<n%)Bnn&<@E6v=gpP33F>VF_dKig
zwn4v*ia**9n9bVic2-K2Sy$x8c{u1^p626}CcBi<1>3Jdsb`%HZc_b>F^+v%0<OfX
zbKII1b!bHe+Am$pon<cD685W#d~Lk~)fK7UWt1Nrw43zIHQ%!o$skG9?m$;)8m{iA
zneym`$Em|27Y)(AxFDvbs$f!2n1gT)Ze()GQ6PaB6QN@waaMFgK~|-VTxqkzVkQef
zDHIcS6|fK(C;C_jv~WQeOHch96`22>u6Xj3-UK}f!$b$YZ*&rXd{$x1i{@3{1=X_O
zV{v;?A<rPlAG%nT%aI$ZsV#7qn2Lxk4F-n7VL+xIkQI|Hc1<kB!)0?^(DtODmp6GD
zG@-nzzT<(8?`NLI8`ZE8o*ET5SGH3b>RA!F9~zJFO+n=!3r)j~RpzoMi8mA!Y7?}`
zwdvU`T*&^E#fHJ3$MU%`8wWb7@7`Eay(5Llfwi1}EYArGP9T0YeC#xlMr-et|G=8v
zzkiS+qFHg}ZB*g2pjQ@=V(Fssc_5l)QGxuh)XGUn51Mrd#ocbV@Os710@~x27*z=0
zt3W*HQ|*`-*LiQH<I)WcD>S@VhV<4;J-V_T(F@a&JCD<dhoZ%n%9j5(=&L(oNa{PD
z%ZNQm1?=R5Lc}w0Pg1qPrP5QpkTgtX)E~a%tAqObnbzTJfjTCWVWhs;;WAA_o;t=g
zQjMxv5*b9|p`@_@HB>A{8nYvr3Qc4oaLwSdI1?`a{-4dazvpwa0Oxs8EA!&ayR5!v
zU7_ETW;qJiebgrDaidli!QyrnAryBzw$_=KOEsYDYhbDho!t^0KhBey4B~yUz?HNi
z+#@XldSQE+ZUsvfSjQC@Z#G^mP^GwkCBbN#?G2a+j4DFVZ1w3C$N<w^l`ZV|!sqJA
zdD!KU!L%q;c`{Aad&T*`h!STi>XfxXU6muTC<?r(PET0K3r~q=XIVFYp<jnwG7}v=
zU&B;v3kECC|64m-A3n0z`ElmUj|*qsHh>?dLXWzrtlvn~%Dl(*XX(Row>Jrg49P*x
zW((9oSbY(~qBg3zarY^ed08F3nJm!@qYE^#c~w0>Usc$fwbT!`vxOHHVd`e6)1=F=
z5m)ZxO!eWGwDNUUv;(cCx%$q;KA_>xrAkNW#7ICFbP1oMC&NdDWR3Rw^>s`#ys;$U
z+2{mlECWiJ$R1-!B*G2=q0g=&FO>cPB~-fSv-zVYzWP%(yR@<B23w29nYRtz#{tj}
zq%&UxAn%e|IY^a#T!6eQd7^)OXv#Gs6F<gF8bV~6tJFyYooi#Nsv6%tPuHg_)z>?;
zGx{nOlr@_2M7Zu!D4Zo3HcE0;eK6264HAZGgyjzeon8_z715GAMU4ldh>1gUbXTkZ
z5KxhNRskUl(W`T9PpKIo3S>exFv_R9hAe+?WlFTr<B?-(gyJb=@d!z|^`d#HZ4@j$
z_0fFu<G<QvBXrUD^1}f4QGt3<DV9UgEXM`Ny9{RDFL2Hp$lIn`jsottpM%vbVNebn
z!QE8n3W9t82<y*{bVx6ZFVa?GX*~UE1%kI+WgE$TQVB$Mnr_jS3$@+w;GkEGNc%$C
z3*=T(fHDD6aMc(j%7wG$s+%bn=*Ri7BQfM+o_&2uWsSz_#HSltqFPGHAG|9-T%5BJ
z@Lo1vh_=V|?gZvv&KXiHaJhPitP-yq?>L;Uy?5m=Rj>1}b_LAGkuRSmXTGQaexN|-
zdjYn;0JOOnw9S#XQIWUFiMKWNc@%!Ut%RYyx0S;hPWOUXGYN!Bx++PZ-#JHDCa0?J
z$F#ZoO!YI#`z$4aNWc))cVDbycg2(|_N;7sV$#Lbh7~aON9D7^<E{gxUmy`2$gmGT
zhViCGOR4ysBjcogFe|!q)>;M<Ntc$IK-32nQ`FbL>v8D}_|TkV7zx0g3kAe_a~Dx3
z{5<0Bf_UfqO?>rqnO@wOW%Yg1nxONbU1sgy(wWYDk*f2<9(RyxeLui`KM-9M%iH_W
zDtrE*C<$4x;*x|6H$#OtzYWtTWlT?RU!v_iqTR{!70}*r01VX&{KqjJi3&W)y+}3z
z{LrYM3DhXYsGDLK=vaMIZ40GRh+?IoY6_h=1^vQc4aY?%krWjRJYu+N-kngh1Bn84
zV+;qHYD97@UoThY@Pdh>y_Gn^G4N4H!&KHF3YWh0!6Lcv*^|zfw+Y;{0PijU{Gb4T
z&j#os1Np3dR}R9T9|X9&lp^k@%05grez)UIxU(F92uD1eQJ~{5ZWT-PrQJ)ESO0D9
ze5C^Mu`}E%Bmt;IAOzKvN(|2xqtlrz>x1mu1wD8JK|ympO1;457Rr`5@}lFUsxL8a
zFRqBFqH+Bg;~xu$PO><FmcdHpBIR<`#p87dWQx`JhF)lxQZ2n4$UqWyFK!_c^R31Y
zruWics=obfTQtfdRO^eD3%W==`e7D;d(tc?C46~5&C;WA;`al}MdQa0LZ9sCye8f}
zg#hISe862-pI^7<=#~6T1yrL7$e*pM;@UkCQ<1I#7%Jb*r^-q-+Tz<cNA-ERnaDS?
zw>Vn^@OfgYtKyZuR`H-WFpU{{jZu8$Vo{rWN|!|Va#wx#YxRjU!(vIIgkyw8tNv1a
zSjtit3#e#dhnwUY*5R%<sH=LXZLf}>6kZjMT}kOVF!JKl+x{eln@cu7HSUThZ@U7Y
z2dKZ1qUG)z=)9=l-L}N=xQ8^)N{YCj>OG8i&d0a=-!dSZh@KffNaL_i+oLNqNw3wE
zN~DxXBt9*<H`U1iILWo5=8Acg=(Hz$p@gx3bg8~3O*EVlYC=Gfd2#-lId^dESTzc7
z5)*U}H#$S3&07BX`L#M(sPrswr(V$XM4k)fO6`O)1Qf|GgCDpjln;`S+;EUAYJ7Z7
z8Vrrca-eT)6fHmfo^<mApPxnb-374E$~|$BIrFX>pNDRM9+&F;sDOWzYQ4*fylW}q
zK|w$2ZC{Sa_%lP4Mtyo^^+75tu-e#SFZ10-o#H^;C{UsL1Sie_*9RpM)D6gnQ%CSa
zDN;qLgu!)V+@DC@3o$svGR56Qo3fAwI?5%k)hSS>paE&cfpH>3La6@1cY{W0qVME+
z@dCnL=m?#_P6Uy2MlwKcQ8#XRk>Td2YubvE$Ax4RD#0}I)$gia`_I!6K2D;0VjETZ
zahEC{ssVZ&X_n(S95hcU;z77{R|rJY2P0vvU6tEgqV3a{s4y9AZ9Z33ooSQ!V`Qo`
zFV){1zy@&7a-~>$ktPT6Z9H+gJJm&?NhOj%=D_2%LoX=8dXtvm-Cf9qC|i7b1yo8d
z6Q{9o@4T>VPHLLOJ)gV=W@pwFi8p$oT6f3AQ$3W#ix-=2A*&Qr3?9#7r{D!xgrd{W
zWoRkw-S{`F*Zb$F#gCIT4f;lxDjui-dXi|C!=8U0-*-W^92MOC<CllyZ<V8Hx^#*r
zXU|n%Pw3{>*Bp{L*`M|b8#)9=RHanMX#T->B?`Tuhp@K0We(fL$cdR2`mS6FL&@R~
z1A%HOg|-0r4`T(>T&#5ST)FSkd%9@E7E-16LN)SYX`&TS55@C^ZF)x&p`c9N<Yc-9
zzAL`kW{TWVUrj^xwcuI<gH)#EiE!}h`C|IOjV?IzMdQm41KhI$??nalPH2|9Y0=xL
z$oJFGJc@4oARv0b^B$BoIS%9dx0`G&^^<q;Eu)oXdOh5x;?^sT_qUOWM`Lw@5)+<o
z5UA8-paPyHxq`iKU5m6H{ul}WU6gy{*>Ij*jItOcM>3|*w_!2JJ%ER$EmS!Ck%)&2
zn`1Fhvyuj5{cZwPj#&~#&Q!pc7lKKmyu4dL3e~Uk4@#rjcX0EiEJC>#UhNv7xymNp
zYc_cP+w;lg&$S86v#8d;Io{vieGVMxydRLh7kJNO=x3JA&BIjhhXMA(QZ4(r?I_ha
zKG^;?qU>$gO+l}1?9g~zD@_P?vY~=^6zlh_L}4FurZW1~ziX#zAZOmV?<EkSl6BE?
z0(gCii%TSu%>+tqBodk&3D?d)Umeyo3C>qQK1rU!MJjJAJT(@HRH|+$QTVa>ehk>d
z*lWDPKuab(nNBH7rBD!$$J~4@sYalK5L#j7G18P87e^uup>|WQ{i`3YUjNT^4bWXt
zE3*Xd<3zD^Mzid9!gD|1J!`G_EI9FbG&&by>hsQjKuK7Yo)2&+#RI(__4<YeQB|#1
zpTo$|D6)0A5VNsXK$~evsdNB$(}K3A1*JPBy|P)*@=67~>ourb(!m}CCHG@(aDoem
z91!V5m=+zUsybnH3IH6yN>&Gvz?I{vaTO1{TxWAD4u-6C=fNNTx)-a2(!Gg-I!111
zqP+p!&O=U|LS!WXy6`|gmxUsf{8GOn2l(^Lm7{MPZ+?IEJNO%m%$Lur5&BJKi&W-E
z0p?j-*tT)*!*b$_s$l5~-0ydMIM`SpMiuTgLo(KZU{oO{gYw0tkiwy%pvR#U0X@XQ
z6xA`MOyxlSm!+1jPZN60j_bd}KsDEhhr^gZs&=lpbE%-AEr%f%xN;J8Nm(fOj>agQ
z7*UZ&Lfk_#2^T~DxyvHWl+Gz-v_F|DC~wR7f1c|?gA7qC=ncKQ6~K-q+=454cb=lA
zp7`3B!h!!e8m7HCc{1o-KV7C5Hs+x%pCxC0nENjJG-y|i&xL7#c5&Q(c=ax*lzAyw
z4nm={G4+YthAXc>)U!1i?7IuPMrH-v>|^fe74|Xj)gI<nB7h1Hq((NPT@zP-j8O%`
zyA_xgwO6^E&mVUWF_kHF4g;d&#HHG1fAP}lFi$Cs#nKzcH%7yg5pGcwdOsL+fm3(Q
zT2ZuQ0>WwTsbf5lNAnb1xZ}yC8s}gQ$EjO&W`tZ4)jU_@{9NJH4t{+oP2Xtg>+ejG
z^Pg{<PB}@9&{>5&FG?e{(*|f4)p?u8Edp?N+4wvP;2-3?QUBK4V`CZ)8r5_t4Nh0#
zR#kZzBb36ps<f1*=%^UbYvpCysSb?74GNMMD6@qduSXM<fo+m$@B{SSaiD6H!YXCL
z->*p}KTb8+0s$7KfGbzN435YIg%1k@`9QqK(bRNYyB9W5cyV$8G~=bJaF9v_{}&7i
z!OxtpVSTw)y_BBrJ(SUYBiy}_)S^fhCYPo(y!N5#t%K>!kHg?l+kE;PX&UrU4bbCM
zoiBohe3txp+i`IF0sY}{{1{i}%@}{6m3bH<^Rf=8u)-fRIAvu-ucVh~m)2-njA?81
zr3#RDn@SmKl-vVQ*xzzR%YhT9)*<z?UPa8H$=o@>(WM<l3fw)<rv(W?ku*|cc`Udt
zI(u5HQp!eGK2eG#l;__UJ6kk;%S^Ao(bbnV@N*Niu=={e@7&2Mv${er<ycIUx&^Mk
z@rmkp@pooPtF+w+eIsOpw!x#f8tB}ntZ<%HcU$U~gM7aq+M=xq&+e>k%{~9<qTcTN
z<Ejod9?jyLT^Y~*wsd@SKv(l~biFu7NuJR5qyq8cR-HmbT6Lo#Sd<zCXQZL&0xB|X
zH1c^_+sy#Yyfs`3Ct|Y2m9_63182rkCP@+WjLA|oM`2|f8m-{@worI`mn_7OJ*Xd>
z{bMp|(4zVdCFmj)r^j(}n}Vj$EK(!YyBm}$)u|EOf76ULllPfud#TJ;$8Xd|=%QBX
zZ5(shbKJ23dbeiioq)7$4f!man_bf^_dDNVtM7Svu-txpS!ThoKmCxgOU>;;g@jO_
zxN5UPA*U3n0O>}yPOlV~X;Pt6o<C2!$*V5d!U!i$LRX;qn3ZaU>n1;w8r+xyi6f;@
z7*L%LxP&REIqh+7i~=2rM<X-MRnLvlef(R>XDqe?kP#N8^7E`(G2RsFR8%aErjbT%
zA`_>%Tmu{;!Oy#Dohg}8AD53yQdRTd7&jnQ=zXK5m)??YJ@KV^^5tz+;ce3^$AMz$
zjAl7(72T$Wd=}Efdx7gg0CZOT_+gr%U4r}V=jpH9INLX7&8aVh9$|=NPje$>Fk|$t
z9nwqL!?Z(j1#mZMJbkXJeA9YZh*Z%MMLHzpt5dkr=878>3=im}r8gNV8f}<U!5j-x
zL<V03IXkL?G$*tlC`f}#Z#>3rT}iv@I<K#TZ{MEi)MjAz^6BUs;ClpRNFTJW!lh!*
z(Lgn-dC$td*&eY>!5Rs|AbHGqaO0iHru|YEbV^s$%B<;?SvEo!g-36_0eTcrZ{u-}
zQ{%I34*e*N&-;P+?LQl?UVk(A@&?F)8pyd4pPC-M7(GZ^=2Ugth;D5BNd=H&2g=L`
z`;x#o(#g!`4>QmKA_ld>(}5SFHRrEc-#tnclraVm3I>!6tYwiUnv3ZbD3LwA0MWEN
zdL>gX+o?$+vEY@4YFc=dPpNbWUk{&WigQboxG@7ObpgQ+fva*fV*{zko#x$YGuZts
z+W0fo@8VZx#hEWkBXp6BxE5(xsPhKsVb0q|b>0TZcfp@8ipKmfl**lc7B6kSt4D!S
z8e9}ODPTZ1PF<#r)eBX{oY3~pAJa73YzBXF&y6rERD}XX3gmqusZzx^!2)dqbqCWR
zxz%$*hhA8(K^bU8?uSqKV2X%3aMihR-DsA=0sxDKtH{LxGO-$v;dA|on1+Eq;rnxA
z*MW4hw+iR$;p(3$BWTs(ogRg{t8kOB@y_?mgI1YkBlL|t;(sKXrOQTVoAk*%D)2>d
zK<r9mz8^~EPWOoiJMSJ?kI&$$bLBK`U3iEx=9))et18rMoDW*7JET&ErwTXwA`Agp
z1wahzkXP|TEAG5e3JFt|1%OITDH@3vIVx>mU6bXWM+)t&;H?Y>0kqL1ZJMS=Epb7s
zz}*mj>O`u<!2psGn#46@#qyTHJ}uOFksGSc`^9rmbnA;ODsBPHm4C1G>gf|fG#V7y
z(v({K=t5(D6kwhe^|A<B^Hyk<yH%8J1N?r^)y8p00q(A8m#!P1M*;W!a_QW-Jau~X
z(f+t!(*pfIB@aGAw6;_M(<V)Jo~1NT_jt2}LY2TZG4uw48tz*vTSyx*`rah`h#JMp
zqA-=lXJGeg$s++-ED9Lv0YGDNH1Z}zkq_E59Sg0*1JYDHglM>MW@)yDp*klbAJl=f
zt&aiq)I6T2Eq6PIP^MJNz2p8^U@YBcz{LyU@a0E~>}}6<!I{4i8=>=1wzN*Obj^b=
zk__>F)W~sYe0B-$`)!C0R&JeI?%BtKQFZ%;i!?d6T7ln`CbzyugWgUJ$fE5ARbq?1
z##^O$iN^wrp;Xsgi2`r|<TwVLaVmyd0BC5)QIR8tvls0JM^xF+Zr}dCXe@Yh9s3WY
zs$cHa*N}RXq<Fm2OFPO7o%l2Y$V{nV_khI=ix%v9p)(JKlV_?wYRt~{`U!q8gPU)g
zZrNwLq*RVmBXr*2J<p2#Pz}&KRqeA5Szh#TiME3!+74_!C})1B+t<#%`ZyESH`XV#
zojgb8it^v5)<uIY$v@!4;Wb`()iUS^)`=&=KRfQ5{mD~}d9zmKg_s1*OV5iODio@@
zWj4hE=o9VbrqM*r#EB4+Kn(C;rvTtbQ!~x=IU4fhl)`myPn3rz4}_Ckr$Aj$btb_V
z@;yi7IgfPNeK>AiUMt>tpg#bUundyLc<Wu&@8+|!<jmhFQE~?X(5@=-+i#os1Zdm*
z_+hA&qgvS>wb6M$@H~o*?O_9(4+HM^x;<LD`QCCIP*etV)<!hSN(!oD^N1Y~OX~H>
zeXgIaEpEy4?S_vEVe(M`5Ip!et)+&cQ2@u3CyciSqBe=-_|SNCia&5<@P{veDupei
zihMg8b~(j}><SP(0o}SWTAe#;#?%Xs&yy#)_c&<K%HraNk0jJ$ccQn)($w^K45i1#
zM?&2ca)SeW(Xdasi5u^}_c)ks9kmjl1;sLpio6W~-xtktlBkqL;=>OMyz^>&?zbU2
zSl;=rwKAl&GIG^rf5|%cKaNHVsw(x>yr37WlJn}zxtow2t`MC*t10zSpr8lKTSq@g
z00g*UjJjh=a=BjvU}-fBnn4j&F~B>Mbf8QCKSunVRsP&}Wo*Ke1!S$zKCs(Gr49}q
z*`g$kN(Of<K72p6Bo9f6c3z0MIqMWXfm#kU(ROkSe;J8)P2pMMMuE3mkVPk?$#=F%
zrF0GMizZoIlt$=b0DRvWpo>JMbTREYtMBjkN7go9-bUkdKMm2U{tlK`#y>FJ8M-lk
z$MXsW5IbM*fZjO_>B;_pvg-Tiwleyos}s69EouF91w>~&$HG7<5I8RSE`;F3Q)vRG
zna07PYRC6bsSv5tAS?xPPdyTa+6cw{jYr|Y8@-gO7-1LVLTMD7m#>GPv!iV?<<X72
z7Ea@C)M2q%v^+apPBY3f^_oGm6vkgup<PO=+W2~hQ9Ka#Hdgawedn8;`QkQ056gki
zbON-k`^=)z*%r;x7O=O~9Bl*K4|<NZ^DjMW3cDIvtrUX_sTg?T*jAs0`aMHYpSfg1
zPp<aq9S`>CsaFzu`o@Hk#M1gXrU`1GgrWl;EDm@@6@n0EH$W6Bmy9doW0G8}*G#l~
z(1DlUR4AIQq1ii}gaVrH0}VQWwI|b~Hq@abG*t`9`z)pDNuGq!9V5E~2KsGedU^>)
zpkT0DK-0A0_^opEZk*rhU=?}+(cs1d+4R&iU4!&IIP<naebJ1#I*}&MDlKT<{CFGH
zdK*CBW^?o)^h;X}(Y3QT-aE84T1tR?RhiqmGLPy|3idFMDj+v5VaQYfX6XHI9@0B5
z_vxQq*`{PtIB)MzDq&R142mm#jevvd!;R7h8mY!Wx3;u5<-RBs1fy6%6)G3_qZH)H
z4CQ%+vS5Hx2|PX=%~t2OD3Zlo<b{Zp!(xyDtTV0lcQWyPk$?;gC&4;^q>)<+rDDsy
z*H%IUpR39yL*ur;`R3~PbZ9U?YSlh(Kl6DsLc8S1k3!Y7(g1CfAMbKZf7X0?SHRvS
zH@+Xvd})2-!^=e|9JO&H{FrhKDllgyOHiRB0-YOFV$Qo4&<7u0qo+ojj%&bxO*4j%
zs#O}0u}6vc13x5AhLcQP4?$7zct0eAsRSYqVpX5OQw0@1H(q&YCl$v+c#j*i_p$k*
z*&l^z5pKFNVDmI5(;#`NLr-u*B%g8#$xC^zk7JJ+e$A$ZR_P&ma!1mpDs~e1nwz%c
zDKD72Z#^!Yd6%HRC=;Qx1n_-LfX<U2pY@o2SF}r8w92gfSN7}65(H(ic53v={#H+P
z)WVq?(U3b=KqID7#(^T=uc*G>G3&G)tkLUHM*RwLt-Vnllh;+JRH>2CkmiAxi|Ni+
zC;-E>svjwp0?A^Ud$=jS=$TAjA~p^Rl0x!Bt$=kPw>3U5aw0TdNp=izsQkTiSOmp`
z%G*=L@G(=#6a^SFXO0kPuJ&15PO{5j`l>Xlk9P}|^?x6=WYKxn^hQs#HL!D%IrDk*
z=3O4M@5=m*#*cSFyR=EG%!)6++j*AHymHx4ak*av4bY(Yt^<dR10n_=Q~hroEzu^O
zr|s|@l}?edOS{R7)zO=LWL<p+HIU|>Vk9D!1j3xE=Z*O@xTc;w5aANJ)wCg0{gYJl
zKVjNsy#^#aSc=lCu#HC31)g3Vrd*{^B^ZE0gVuN+F@;q3D`M;gZ<fGoo;r<s_4AGG
z`h0or1v`tTypU#bF8zRk7<su}Mv%O17AZnqapsEv+_R!sjzXavXlQ7^0NwSteVae)
znpWvjJ3gyHp@UZGr!QUoU@xmV5zr{wv}5mbOQW(+ljtJt^v_Zf4k|F3(0KZ61zxXK
zU)Kl*{}p(3vqwvWML}E?r%2Y}L8PI|5258INDWD1-ZE9fpaM@ty@EhzG((-OK;|tN
zrXD_WBmK8=>S&y<_UqtfOoc|#UJHOys%$<N(=Y(vfRuxeg^q&B7GKZKxV{fp{Co}k
zJdih<3-yDPp-_g7pqcN*$-C!exV7k<d6%Hx^#IXfshH^YAI_31pLNsoe&?Duupg!I
z*)?CzAM58fKDttd4VMfr^D^qw&Y6p}efAvX!<7o4ld2-VPTSkhRp*=3y68|BfI_Nf
zI2)Q$D{l<bKnGrW%}@-_lvc;}n{3Rm=Cn~+V{9HiV37O4sureRsLr!O8<|n4I&Z#q
z-U)1v>qR5<B$HX8=Up4t*UwybGwo_MrxdCk$R=ZtMslu*X&t~(`e7Ba5V_YxCS>^?
zn<rSD$}{m`Yc-pm+Ib^$=8MFe&l14z85`Gj1>QwtvrYc{AhbyvYL<E5b`-wc1ZjBY
z!sy3_uMKMuuh1yGaGr`w572mR)dfxz#p^WP`j<3KN3Lpi8f_^TnC@`Rz^ML&&k8G5
za`8Mt&L;nieaAtI@O`6Dsgqnh!I_3&pdBUZ?E+qzftUZ~pSh8Lsi@Oj7X(<~Vu8Ul
zCv0{x<TRBCI=&8^AF@LRVT4Fb<vJOt$E9k*Nr1d3K^JJkVlow$2K=+E^o+<P{;n)M
zgDnYoPK9y`ds}DH$=c2$aOQ1+`l9mYi#R2E#|G%Ura9ZFz!#NPX|qB<YUA^$eEFp}
zz4n&%rM1<lDz68RJwpA9RTUnVG)}i@wE0v8RwJ!?L$!zP34n&7QWqG{?@9Bs2g*V?
zWdt@GqYXs>y78KzeC#CMJ22Ffrs!0v`}O6z(l2l)^88+`o`;X`h3aew$zxxx-+FvF
zxOjZcpQBVkm;o3AK@8}8EOX+loY~5BhX7YZDm}k)t5tkfHXERZub+r17k)KCynC+t
zJ-v7mIrBxV#uo*^kL1lVFIuHd;JzQ|&Ra`<RKRZI*t`9qJow0~9~p0NQ~53Hlt!;p
zoLr;P<T|%89k6iqTUgH-k!mnXkyh_basn80p%WO$FgO&!UbfJtCaQUs<T1#?3k860
z<Z<0(X;h=%iZn^bi5KHm)S!w$jV8ILdYtv8I@>dnMF&YocpU5&+$esoR1P0J$y6OP
zDOJ))(!51ucXLclV6+RPi0f+}i&6%jEk)sJ&W+M6;LY9mKMz$+c~EP7ah8>L7l6Ge
zpnlvGFLxap+Aqa&*b00R)hY*F6uJQRqf#YZJ0#*f!`00n&u@nG^2P?Gbc^~Gm@KbV
zpQ|;%Ofn6FV1IEN)JhG2ImYD~EJL9=AQxo7<HdkK0OEa_wCu;qvF}W4Ad3S9T#WT2
zQK%@@n}tZV-uw|7Z-^+=V2UJHFLbDL{0cwvoDu^W)d$t%R5684b+Qza8=$d_>0>c~
z#cko8pU;i{fU^Xa#i1F55>IqAXqmT%)h=kDAWkl}MW@W7YX9Z{QTvV0eO2a*^0VVg
ztF&dJ)n(PapW9bX-#T4}$%odaOLV^M(IhD7^>I!&cXQgRs^!z`71*q+GNcs$@<6~F
zDiU4*_<II12JxYc%Qub4QUM)G7WlQ4;$oOvT^uq|dzetGew@P%6nUO4k>{cAczTf}
z!fkP!s&2g*=`U4wX(R^D+2M+3c_5%X5x(D5*{K&U?eXhPGuG4#U79H^lUq$wDy1pP
z=i+_<D_{6pr-ipLkY|e<P9JW=<f_g4pM<cAMXt#2O0yib8lT0_+N{poZfY*Nmi(v=
ziTrW-%`bn~unZ_JjRVrt)&DL<eHv7s*C?lFZ={q?t#e0QIVFwBfd(+tCzXm*z6Ll4
zp*A<cCHsNQ+*C9Iy38@NSr(d^f!CZ|@<N!&sOp4ntKeOrbD>@<@I-+#A&w*A{vmO6
z)1^JBimmP*&_E?mL+*TKlD!)BK(yje=-~02unwVsrn18bV{Nz+seg-0QsTz0>?Yz~
z^46~T?|C;wXAvED5_t1yzreYO)p*y{`C)*5UX9SBg8RLGcK-6sAM8!T25iF$MYvhW
zwzuE97SlVc67rdGMt^!^O559(&Y!OUv8N!02}={GBoER)7*~OU2&8eCOXUsTBNi1)
z<60;jIDa_T!cr^f5O%ha`nSMirA(C`!3cifMYtiXBJgZ(Q871Dnev?Y`dH1vbjWgC
zSMH%KFlnJta?IcJqEwh#v4U&fo!0!gqjZGd#|J8J{3`f70||r9MUj&@PCa|{B+x5I
zsl?j^^{(<mXE6mDopc)IBvs=F0qcYE<##(iij#P-I{LBUjX^^hgrWL`#}zsc`i9<j
zc0lib%aERWbxO}%n^0VV`sK@du25(d<aRPxL6&H|5Q);GNVpjab16s^-2x%t4wVc>
z_!&t1kq-NS*KPuyy(%3G0ld`<iIOw&yqr&pSkUtItuECAKF!ptENo8AV(SJaxNlh1
zk~B1@nND&#8r^ycMAA4#<|z!g3aeUtcWx4^0r@(W-2sK!V{OwaUD7LEHapv-Smwo%
zw?eZV2jD&oZE}*U@ixHyepJf?Z+-DyK|!m%G^m4_gSs-0LhGc3?2^dMzOVxIrGcRj
zJhn`aKRBS@{_-}x_DW8x>qMtc3y+<Oxm8c4h-Ik(6byWU7u|*h1Ia;XN}`GBq<^>h
zh39^QlQa$vd^oD>CTrBIxKmNV@cB~#XBc&H6%7gq`gB<B_Jk6FNf>q{4zx4%j)56i
zUvfd+;=?-msWxB>j{@pRtXwP#9V}Xz$E#aYJYa$}E{ix@6l!G_^h(<l%Za2}<^|ld
zq*3Nsjkn>1*oJatzf{YGhi-nXH;tTumgAx;5D%eBsQ{eqW`hc;SQ6+aJgeK!or>s(
zKX97<;A<oL%C)hxu04C6n#I8Bw?$)KieiIl12W2$^Uq6<B5^8?TsdQRjb^XxkU@`|
zhEDY&r8q!7$-M<Z)Fr6gAyW(k9U1}+6Nk!Gr<rosgIGClzAx`O5>npXy}4v@N+jB@
zyiKC%bn;^K1tklDrri)yrVCAB^;+Fxf&cL$IM`gD?w-3bD{5ty^vbM3eOBPz8O_p`
zG_ei-eHKm5wk3yMjOQP<LO;yy-|#b&2dB<&{d>cWxY1(+$lbt9RCCLLG&v2@gSeuu
z?(l)fSLo3TJ^I4)TeN-4(%NYOY?83%TpOftMx;=ae&T5FkkKB638@(s`0+p{KAp>9
zu6DGbKft>~g4hh+NOKj`3<i_@N?vfYSzMf&CfC4;(4&e%xkDn2)1J5}VnE1U2i=zc
zDT_}mMq20%pjt<R)p~<OB-a>5(-q4$l*gD_=@Qi2q+b@9dYOqdaTZO^E>eLGL%Zzv
zwnfPHykCX>@MBlr5eMbNgEV%&<#p7Xsk!nH1471C<4~Ls?XfVY%cpwup|`EmKYwYn
z0%+R=JWMjJP62|EjQK<6hhPc}6#>LuLp9u+7=$TO&^f5su>*i^9Uq`$FolT}BiIEL
z9_P&;smLiKqaH3KmIAKwFSIEd#@e(j3f0=Xfu!4pr;1V+mD2N;ah~m7m2ad8+ca<C
z2*!^SC#!AKDvJ#4^9J=r$O_$8Wj;%arOW$v(e&)vKx@(b%P+m@#wYrdr~&FwWQ5?&
z!`M*3pFtf)0Z_)cd7S`cX*G=KTQ2tLmYp`%v5+m69$<w6=#exEBgxV91C^IVBc7F7
z6&uet#Z5~Js6!Rw76#I6QE=PN|D{yjI(gMHE-DJuIWZCi4nK!+s#QBCG{Jl4;xA*Y
zM$P4g(mT-5XSoO7q}O5T8y7|FL`pPF1Er~gXnMM9U-Lz5hPKU*FB)%t(Cg_;ns}6B
z+v3U(!(q4C1f5mW^PqhBzIb$#2NxdP{As6Rp&H0TC|JBnPDiVl8g6U}9}z36j*zzP
zI^DEGn)bFSE^bypyV=k+pgiC$?##AGDF{ED0$wL2yvhTmLm1?Gk!EG~W&A($_-`m*
zK-cslt%&{V7&HqBFyovJAY1i0husU(f}oITDrZvHMEJlsnu_Yiru({IbLvPzvb0y0
z2>!g$>|1$#Jc=lc($ll_H9zS6PVx}ZLeVUDtITIjvCNtqKW@G&vzYYsKi>TID^ElP
zU5?YR=EYg27}+|wIa0oy(Zm|lI1O?oKA|CPnG3WVoT0*|6@Xu@D(9Cg&`dPpUVyC^
zDd-uggfaeZNf!-NwvMv!nx#(t5vme~D|xmNC~nKrJhddin`$Ew23p|N!L_HE22`ZN
z-KUv?ek2pCL7;h{<W=Ra>Na{Tc?y`^s*|E`5kO||_4?OUdVD>07Yyj3+%E{T)5k$;
zJ`3)A(RuT>0sKIf`9Y|Vc}fb8^8MvUcFqr%v!$~S?7pqq8;AXVvATRJdCc*m#x4(6
zllMe{(TK9BT<;CC_n~<egdVj}1lK3y_$k<@I_aG?)7|a<7hs;mv;^P2eQW7o6{X>w
zGu?dc)Spf#(d6n&r?1bl>3O#*{o-40d@>$K%^;2g)#{sCO=1<urIIWwl-dbT(`Imy
zCc#p5zX|P3{<s418?IefN{JnWD$_&r6Djn~08gm$L;xFf<wWX9?)#$y6xm7^Njw+?
z!sI6C6*la`xll#(ztc>csSMs!XjNYnnrM`Y)*E1pbR(P#{Qw8tR(k-hp-D=$6rR61
zdI3h$KI-(LLKi;ld{C`pR}lpHdKa8|m-NcKs_~Q94Bb<iw+X)U9KXNY_h&AQPMy6x
zy0m_7^5(PWCr`%xg2DTp>!*ruDNONJY`YyOSgn)-k2`f+`$)Ib3>q%sM!3^L-jOCM
zFD$JkA2X6N!^iPt-}>3<C!LQ+R=-JIGW~S3nTjNOr7>7a)9|@6i@rA5?R_cF!dsg+
zm;P0rhNGL;)?OHG54LY!UESyk#9ft4)9}Kj?Y}y_KCE5?>z)S#Ig)Z*MHnI?E~L%y
zB5n09x(UaUMzlTo|Edakx2{SB?CSGs^;&v{S@0sa9wlLnR_zRsRtAU2<E{CV)hp~`
zIE=OV$&bNRwo|vH($KWZGxP5Qpo!+F&!soi2B?srP8v!8_T=f)Z9UmZGTejRMJCgr
z{QDnGlz%UB4XG##Ednxc;Q}|F70T&bsp?AvQ(G^t&lIa|=X4$??);lJxn5=71;0Hn
zWy*tZ*}nY9w`{%h?1kx*!?oo7Yp1dgg%!YtGDL!E$^lBCVZ<0Tk%F@hBgksNDa0fy
z0IzA(QO^j-a3UIb*xVZ^VW2VM-Hq|}941MTHUaS_bw1a_;;r#Y@z%BV<YNpl7a!ep
zU{weZxeB(3zPPb5`26n1(jUBjZRP2zqJRG8YpWYaZF=&@W8Z$|U+d@Qa+C*Em2B&Z
zoI#lboCSO){S_LYdVsbEr>li5qe=2o1$HkvS_NFLzYrSFl@PB1o->+%05WToOV1?w
z4OJ*Oa2R%x<ZQxY+|u4434nhXsGDLay8wVQey^ZJtYmGvcsT+1-Kh>V!Dj|qbH8$T
z;GJmY4C?~-cOg<m_xI*KuG6oV8g^klP$#hfXxt<v^(Y_(`zXp!&$79Bk|>s0gLkJi
zOV>@yF1hahporh{ts9SBdSv(AXD>~@ckOig1Ixqm0)lxlcv9yjO7$aK`q-0x1!7~0
z>M!*gXC*2}aGKR^XNUEhXqs!o%JI6kt`OOlB=tNv%2I7sp$Z|7b9LE~k@BSemfKmt
z`c+>fYKS<0^8Dr9C(mBmrH9{sy?&e`xW2j3|DDa7!`~ZiE`Rarl~d2Y^wslM_6y>!
zdaf?^p|`&N>Hbd4EzKHy7{se%xeCorou%x-2Wh9jR2@5^-SHPI@VZ%nSXs*jbB{s@
zl<uf$8u2YBHKl4s`907#q;yI@){%N>vH5kIdZ5QssBkMB#_Dbeu*0saFRvZ{ju~)!
z-c%?!f2d&i{QiRDd!+F1V{M?n7Z+J4e=p-i2ZLM%?Zww&;o+esG*#VmBTX8@b-;Fa
zBD)x8TaeX$EErS@M9*$*xz-kEz9<ySqJa8w82A5%2I#DnD2Js?-tzX1M<09F=J&2&
z9RJYTdiwnX0c?QnG}nQatkj_09O*2ciBcTs8?-MJNbV)vupdX7X>|u~bCPM57RaCn
z$+n!UJv8w`Z<xkUtZ@~p=!Ow*){Jo%^|b@oQB{UUDG4<9tXvT22OE?Z&R&@O=-Qdd
zj~a7}-u~Vz?x5*z|DUG2!+-X|bEkf%0{5qHU0dC{TlK!YwzG2a!uTiqFD%t^I9UvX
zvuA1Y&_fih#1(Mv(C*F`tJii^KOfoI6!O};fMV+f4@Vl)rVq9^1`bo7@Mm$=Xs%T>
zDq=S%l<U`p*v{hIT&*`Tab8wu=mk)Nih++xPrO+8ybP*Po$&RHWI~e@ix9Sq$H{~{
zk7KnM;O9S<T>%3=9}hno7xtWJYEYVa&C%S`n=`nF>ha<?hw(S<b}I6CCM?b_8pU#4
z4Y-cWxc{AQJJit7EE}A0uMEHSJ-5E?!MAMxx$_T9K0O!~k7H=V=NcId86a20Sq{no
z2N0xFdC)8K$I7riHWhF%f$ElHF<I*MbmY1htBtFZ$_=2UmO&B$=2+x<J=sokwK|BE
zkH^Gh;88Xty8vjq-GU+mH1O(xhTHjo%LJnPB?kI@GjAXToa)-C<YU=V^09Ya+@vSo
z`yy>`$D2E^FMa*W^DD1B`^RUl>~8ha>NQWQ*WA4AJuf}FJc%MxU6iR#Jb2(74IX`v
z$_icb;udXgKU;y-)IG-_+)I^UYO?f(bnsj;(OC+A&9B)|az0t_jSAc!yN4FrcnfAE
zjmk!w9_VxRy~wjd=^5y;%UsXn5A2{Bi^XIr^ctukzAtm{){_`Id8JS%TVoj}@>Dvm
z(w1}O@;ey{jRMVhQRtvjC<_GM23(X->E)z)#$k@8lD~P^APvg(<1S5{SG7KC@b0QA
z-&2{l!F{*cz<lxpufO}PPi%hr^!e$hdp&z5^jz{{nf`OmazdeSwd`WOs0PN+XzUh}
z-+doyK8_8JqEN@sPY;w=Wl)Kw>UXI+ebFsT_%OJ4M5S5pUxX9;-Xi?w^nF192;_k-
z0u9Pi<!C)LU4_d9Rls-U=Zgvv$vJd;;tsq_<n`d|U0uo6mxo*LK7DEH-S2$gD|F-P
z@XGa9hA)5Rk4}I6`~zDbHm~=ncYcl5-u^H}%W+l7ZqU}w*QygFO>Y5<7@xl<?tTEy
z(9?heY|$GCJ##96{M0j%auw}RHQP-uLqHr0SSiYw(khM8*aXPGm>fmJxv;up;>U9;
zmr^G$8%|!T`OFK1zydjyh1u=o(!KJ-K%T$rZxp(#!y<(9;}edGgvXb^J-#jmeOML1
z3ZN|Z_E;LKitJ#X(!^O-;)|?gX#<px!ktHL0`*acd(K>#ocgv8T>sRY-!}T0{-Agq
zcGl4Fa^L~@Y<?s6rSdH#-8@H?XjHx6fFP>5@&YOFQT@gXWg5{~4bTM#8e$kms!L=^
zI(yWxcC<@8DO+h3XpBcCfH%c8`L?I1TCtV(x7qj}Z*n|FS}47f321TUwmne`)t-^+
z-RR=ts<=$Yz#D$HU=ys#!z*i(hc7*P>jP)2C!d|3P=0ooO!+EJU*`!!<*?D1gp#Be
zs=tUg(cg^aTW_2Z;0_8IK@Xq|FnwuDrAa{HARq$tQY_>946LCi4FnM5^>(TkvEGIM
zisROM(mSaR-IY;&m+X_)AdJ9_W@o_XsGjfXrTTT|*V{=U``X{&4AFta!P(OL-ILNo
zSgi5fOy>0wM75HM;-#_8Ep-92)}vkw{M5^pMUf`X8rWwA>c@g+X=7;UDBo9r8hqRP
zZ@l-hcW(W}#mmXR4eL=*BY}VgD!(XF8`aE{cKP~W44Xt!u{CKg)ots;y&(jpyopwN
zsy4}ry`aRw10>qx(z`tjbrc(l3~b>MQwG%v_*GCeP`kMG!sG6lJ_$*J8c3-ZKV+dv
zsF&N|5*UeVVMMCLVg442hY6GeXJF4|)Ut$3uKIpG<!)jH)Yk%fHOi@AtJ`W3?Q=Zb
z+3NKX@bc9nSVTjk4u4KoC__9BkmdJUc*g+HU|q{V$miHilqWyEQZE`XtpXL&7+@K1
zQIPXF1(Efd&zWAc@0||oT<m^Wu>z39?WJc=fSm`VjwEq&u3?&K@P;2Y;io2{q6STf
z9TopR_*j1aB+XqHkRe3}f9|BZSWR+m?29$PpbOgLxJVNhp&_~uG|RjinuB2(f5&%U
z|M+81Z2#T<a`6PXN#rsH9(RoKYE*~d$_wv}7YI<5lID)a8Y(nYjj3!^1F!MMTYhlb
z?v0q#6h<N(D;jbD0YsEJ4~|kRFN7jsdT^4ecgIp+Q)vK#plbZ8%Z+OzC|I`mL5;J`
z<2OxITZ0A$a^L}8NVPu^04d}+V?FM*te*!1rF%@ST&qVKOhfnDt>*!~wJJv$P;M0&
z-I$j2^^Jm-s><|C1?o#HHQ1C=<+{`y(#qW_QKXs3uR}lfs3fa9F6>m+m+H#4lzs*H
zcCLWYAAwFCbOl$^Sm^OOG7w^+gxnA&UGN}BW7!>JRLhM8vH9J3N}NW0RA|M#+^cVQ
zUgxAci%`@od^`j6c&fW8Ydjh!Q(6bR3o3P?>4|~`oW8#s#P78(BFfcS>&LqS_AaaS
zlbjoRpvt^0kndL@{{D|%`@y%oWBV84zI_0V$wndw#fF!lUflNPH-U1Kkc|~`d+5pB
zz^8&E?aA@*r^Z&D-z>WVhFMZ87hHIN42(EMgS=6DqCY1A1S4-om;569JduVOU~D}1
zCK@AIS&(vLNqKbZ@#n#9R;_WQ4u9|vai7+cs+rna77IflZ+xbt7{F7nS;#=??#uja
zb-fp|xcc6@*N`o2`_<~WTz&IEg_`lQp`GgSpRG#KufLK~(6e;mY#ro0MK2=OT@Wv}
zxx}FH#HA6Mq3<~(8tF}xq&jXWJ)r0bWXHuHr<b)!3h)Nk4qx<vRLKQs9#Z-Xg#x}W
zBs951mZ&$)8%gC1wbay8!0^9o5-L#?N)7R~_&YM}1_si=#10{VH#(`33HJj)hoNfJ
z1M(~lto9LXskB?$(!`VObG}I2`F_FrP->R8zxU~s@BE(Y-}m-!-}*;OOXXVuJj_w|
zMM08DgUnBcSzD^NvOSs7W0NDHvYW<dFI0s}Q>_Q}mfp%6JodKCrBtr&F}(D6ND2YO
zP^o|p3B15zcv%lb*X+(KZ&Cod<9_A-Wv;smOd1+bzYN6+sxJ3t&i3v|(3}O81O*8y
zb!Q~STYm&L$P}V+Q>F5J1PGlTyilN`ETB_a*lgu{VQp92j}66x3fQa9rKNx_o?W8%
z2Fvu^W=dbVIiZ`ks%m|e=+b3bko^X=ygtoy761)BkS#q4r!QM9z0e7M?x%+8pcr}8
zKYs6MYL{M4XJ2R*EHX$Rg1#F&0K9%fI5G-tvn*4e*j+WdC*jATE^$H3g+|sTo{x)L
zz%w1o$KN1ihOSXB$|+ns{@%Fq-yAF5=J!>|+u=l^J=3Kmao!ZmB5~)7IP$-zGVhuf
zf7_GWkH6=;U;poxSMv`xpeox<ev|Na+z7CvIxp<rs@OFGWjo3s9*9B&iV{#WG3k~S
z(lk_Zfp};1V@SH{P~u6l*MSe$U_DT9;FODRHCOP}oA2CeElb1Bp%?0eD1Zw95_p!S
zM4BkmSipKJlv2PykVOrkhpEb@3MZv`T;-kDsqILY2kleJ_Xul9q#?>L4?p)w^&B3q
zs`5Z~8L@2X`_(GY8wS*0ssMdxDCh@dDsT_0gWmB#pWgn!fS$QArKhis=}KDC`HK~J
zFKI>TbIj-yVA1k@Z7|}W$!owI^lqY6spGSy%Ey##VD`Ey2HrWa@WP6gjOWkd#md3Q
z1@8}D#8G_@db(TU->a3sMKo{=?>z;oYB=!Hh~($In4zKT8;l`N4oVu5#e;K3@jKql
zrGL_xnCW9W&Ry;w8XL`8ns}1ri6;frTOa55zh6I_Er00yul~(T4^4lj7pr0c+;1uJ
zy4)(r7P8gs3BPDPdPOSy`c2ZSlh%FP(E+&Z+oHQr5fx(21Q6h6qXV!=01!a$zd><X
z8hks6>YN>&V@2D|Z~m+Xy_;J~=`hH!2M0hKP0&QP(EL0x_8oW$^|7ag1{X}8;ZmAv
zwVqq$<}om1QC$}b4hT@d0+dUGvyh2M00RRQ+Yt1NfX)<QQ&rbhxuISK-n~A%B^nnI
z=Tt3-hYM<NmbYIV(3{Wn=?|~$(zWXeojF&%hO3@A6eOIavP7si`1j4f$DN7F6+y$m
z?iIiL#^2>OlPN3&OlR<n0cA?THGc<I8^JKFf;8253on2iBl<3iPUsFaI0w>a$aCEt
z@ZT5@2yKm&2I-4c@YMSo1$8)#RCxr7CW>`Y!L+R7%SkCSzp`%(x1f@0k!Cp#&WT3>
z?nS3r4pWtXLuKA3sDH-?Z+_Q1-@Ez042R_-uq;L82};0KPaZ9jVOS*E+bn~x2}x()
zh)RPWZ6I3fP;Nto4TVDUCW<t6tf3M-;OI%HK_Yr^=gr}{=5Z5?dF9baxmRD6QsjF*
zHR4cn8&erf!W3swcvF$30y`*##`?6}!#wOs<pC9d#-1^%(t(F|1TPthE3*Rbq3nvr
zqq^~VaT>b?4X%K_>SVpDDvv8L4|&(*wmS^|rrEL7*KXMnl6dg{y_Z(#Pqz$RuU@1g
zt5r2H%gSZi7T3Kb)Rd7%BlzG@s_7(Gs)p=d4L)RftAm<4n|NdWBQJEB`vLvfo5H;f
zw41adZ~C+emH>4lLt=azOA=XeGM0V`FU|#M7BrG?+l`@;$M4Kd!&d*>7}d|i1zV>z
zXV0$_d#->^vxW9kFs&T<y81$|-Ij|*uN)Wdd|qBIUETkVmHA<to3655D+V9^)N6n5
z+@<8F5bf32jE1VxFv72b+8D-4ZA9{i>*RG&U7@?lP7kP{AZeWKLgmW=nmIVdK!LI!
zY2y0Si!K8df;W?^zzS7<OsY5FXjgd9K;y>v8hLvi88v<i0^J(>Y8+5Mt}&L0oKmif
z`Eg^k`p)vbyBPEZn(&0uo3JeF^I-hGMwNP3kV)VJWSeoI+kRHp1f!}dFGJp{y9(S@
z=5Yn&73y%35Wkr0S6);PZmTDS9Th4=%Rv-kf%~RtNa=vd=&}L){I*y$l564L1DeQz
z@YNWD$D)tyPT$FpKk&CQNwtR%McUYm!@V50Uqs+sVW8QaC=@bjV8;FW^_gb3`Ie(u
zBNM54uD?rv#sCh7pne*aOIS~mVt^^l)IVl(<Y~x7bz_BA3uSUN&$Wr3c}|dBQ67s%
zu`H5AaS^49QJV^ux4eD#(f5Dfjo(;WE}z8hpiY9&<D<o!1Rr6j-qif2;OZxoaqq%<
z6O8hvSe4<StWdvd{=?_-dN|faM)~yIlZAnobwD4`p0I>QQ(V?b>qfS^4C1?6%2o6A
zPpppaL$e*p?jj0QVg}Qt5Z41=5%PSvNlm@-a<6tBiyyqUBeNGET_u@&*0QBenHHk9
zLBtxeC>`Cx>W%8(%W3R%<Z*R@jNP%R!Jh%d%21Y5ljNqRb)4aqtroPX`dp$cS|;0D
zqP+TkLgT8Uzg0cX_3HU1uDWbIQb@y&9RTJ!Pr%m;<0~xE;QIYg=OowWCuj=m?f8N~
z-7HrJ`uEZ3!f*R1JfD+9TrbgV$D)s26e8ZB5qG-)t6>vO!2nuM=&dx@sm*~TCAsEn
zBxY~978I65l_l4fi7JP8iMiP7#zH@#hr+#*+HPV#144@`QCvjbd6&)4eOKoD`TjlM
z{rdO5^SxXDXRk*?O!~RO9;;p_Xe@%FFlMi<DAW*WKsDWap+Kw$ZhU-C918hyxZ+7f
zNs>x)FOo@3jJEr<itporHy~t<g)|PG*;94S@n-$zL?8l{dY()cp&-<0zs!px<2Nmz
zhxulBp68`D0^I`F)5VDwzrgBnQYIC=^}q|wJ%Zh?s8dqmbt3`3yih>5UK7nlpK(uM
zJET(~2ToX*>B(GqBor8<Zc#m09#%lzTc)fxB-^imyT4Ka_>fE(Ro7d%27;xu`g*ql
zo14}7IgBD{DrD@U@H&^?A0BpS=r4pAm<cuYCoj|<7qr$S(;W{MHnsqODV7`M_rRB|
zR_cM#bAhTVy=XRE_r$Bp6Pf5lZ)Dh0sbcI69~p0f@OKfedXDM_s|95e)F4c<TgvhK
zkpgI%P%~%2f7?Z_?u(h%CxUXO3wmV{D3(QQiY~&0=v^D2Z8ST-_b*=icOQLh{NKcp
zf^85g_Xzr6-~|I?8xHq7R|!e;lPL`7eDOw(BITB$PJt?6W2~C+K){Sg|M?Bsj7|rh
zEY7Oo($q_@fo2;Mm;C1CihMHJs}F{kOJQ^&FkWH|d7AGek>MFH_@XRzvM&(2Ae66p
zI~|(69v+F+sloyrxx99fyuo>~>4}eb47&i~=i!Ns25`#y=<4%f8&$8nam`My@OstO
zCc1crvJ2-ZSy~~xy2kdZ)io5=eY0wTO=vv5N~6)M)$eNC5xW=|LIfNveH-r_FQgcb
zlzSF3Z+8UwAgb%8AzZ4xEq>2XJcXiEakjFwmltm&d?*46t&~I3-#fsylu8?u#k`R4
zFcZIqJ5wEq+MVu|kfI>L@6`u&D}{kAm8B`<_XWiZ2B5eR3<Z*}D@QXq&%JZOYX@FG
z9S1shO|i5A+Ot%%EDHV7T4m0Th9Cd2tAGFe<@B$aK!<q(UwIIyV<Eu1=N%Wwq#*yC
z8)tz`XToOI0eMg92ZRWh-j<#79dplE%5mJ8*X<V&D;nQeeZxma7YLUOBm87405aNE
zt`bIBes*IssFNw@&hOY#0N)ver8;b418ww$vdCFa=@61u-A1m@Q5~7r43*c>T^FgN
zBATm(H==KhR&~69amB|J%i1WS^`4=)LbBz@&(ZMBZ=!f@r8-|;y^hnW%6);7%~z}Q
zP8wig;BL&KN(Eg8S$K^5jq6DMCeU2QpjMJ;9|3?Dc;OYz@64!lFP0tGG*_idB*{m<
z{Q|-tAmf9)5sDI+a`_*SIlAV1tg{S(SPLK#2%#6CW+rZGR(SS6DU=Y4KBT3YP+d*5
zpwN%rE&-B83_BZ7x*7^SNL~t&^<(wQ;QBl!Ko^x_nRQciQ4}rFQ9M<C;K#52!kLTd
zPa(e%)hoc90;Mz{r|L_^9Y#9UITbFn7waE)UxrOGFW(VwYIOLGR7DIZP#$1VrI`Zt
zR3HH3T(+~IYY>9a$oT{qQ;sB?Dmaa0&?L0FP!(RIvh@7RjRXyo=RNN3Q#J*olbtma
zgH{zUP+sJoj=C49h8loS$c{kY)Z&XxDnZ1QX`_tc2i*<mQW4b^^gE`s{lJS9^fqW?
zJ8_}Qu{V8aym9x!a~I@e_;q%Zo3uATIV-&&;$p9U9}Vl&%eM6WQcAmbGSV#|x7qp@
zp45-MVjB96bg?xaP~JYEg#;t=rY~_DJYUctO*7BS2kM+$|3<lxxV58?Mbb!bxPH6W
zBOilsNxIj%H<Q<N;-wZjwN|Xum~TYp4~;Dfy>gOhmg5NOhpNnj&<5Z4BiH`!sdMR1
zL8iAnl#l>$l#%{nV|*RFc;h(|=yY8(EJW&th@gW)z<?`sREcQ*!Se%N800k%5ggo$
z)uj)*;J_QDFTE`{WPae;o2@#y_FS5$GEQB1Q~?8PAQ5sH(<}mg)0KXTy8vw>;E!xg
zfSqs9gg^|dFJmLKBxw*M90Cp1z<M$_NEc;5=%H!keqX)nMIAmL)Ae1V>nq!I_DlsH
ztExJ}>y_rJn}#=t8_)?<W}15q$VQr3YLnRknwRK<fib9T{Ao^b!>HoHpF@@k$_(D)
zm?3~Sc(W@s8m8?3Ui;DB@MQcQAX_vFb>T(|mBHXqUb|I73(j&v>+SZ2VqZHHIjx(n
z^@oT=PKkxX?RaE22=DU<mILB=ndjcF%;+_h&6KH`9z}CK?@D}Dz<yF~bB|P+|G6K%
z_O~uQocxCd{w6ZC5zB~jUz(Tv$DezZwl(TD*ca*q6^t9t59`2&(v!70TE(i1Af#~=
zs577c=8ci2F1{Oaq}6&M+kNu*_Pp3z5yFrPO*0A<$Sr~>%>U2co5otUT<2j`dpPIZ
zq5E~enS7-9o;Zl3D3R7cGL%VbFeo~tELl=CMX-{<Hjn@kWQ{=n83>@nKb#0M93_Db
zNHH9k5@ZNgBHAz&Nv4%Z6eY?WG(A4fd{a+%IA`x&RXJ5>eYL)-KKH)ve%<}L>0ID;
z-{IUd?6dc(Rp0uC4HF~?=nbiML#a3zQo_3f!50~Vu<9RT{M8H<d5Jl8jTtxC_Jhj~
z2quUK3PV5G1t%zC{r()UyXbQVt+{V~kmkt*Dww_Xy}t3{%zSbEBL93C%$Z|j9(-6A
z<Lp-0sU#n-6Gmjfw-fBq>TV-HzlnBg_UeTSg%E`mMb-x8<JbIsutN~lhG3A<X=Gp)
ziy7J-m~yArH6?6>qK@C=JW7k#R4!(`h)ooR;ey84<p7LH(u#(SQWsr&-|Fr)-cMxV
zK$YrgmtaM-2Cp4JE}O>4UU?xhK<{M!`Q7H*ax;qhb$8}}?Yp1)d-uP1_1`vvhsGk_
zK>%aQuJU-&E^jqy5JV2~#TFg{A}I*WMo1K{UPVI3qjuFiP>bD72g}z+1DTsfSrwDN
zn!y4ryO$yyMMzN~<YO^dZ-@8SpO-I_IL8Pkj;_v82j@35MO@H%aE19mC$I=YphaGe
zixM1kPf!eOV-3M6fQmZu+qRUL<1!Ik=MJ%$?;JPg5!ai=Vp9lr*DK2Ix}eYJ*1TrD
zeR*_U0e|Q6v3Yv^B=^s6b{}a$lSMkwIw{f)ut|K6=2m}>T@4F%z$9X?8+7rO6swkY
zZQ!G$P~x1x4&Z2|yD6|(>d@|BN*q2jfe6Y%G~JnQgO{^iz@k&XmTZRQl)8wdqIjHQ
zz9)vGc%J|_#l<CZ$s1a{uq(yuaH0*sP_q};L?^qe#BCpS(F4nAeKH>0Z4k@d%4WHl
z(98?UGk^Pgp81g%y=?j4V{n<0QjB_!;{s3o;9j}CU=skJPN_Y<bh|UOwax(obLCiP
zGykAMBot}nFQTxcD~$yU+icJv(?dxIwH!5YAuldL{n8I(dePa9QWEzu!aU0AMeL1s
zd3dcT(ioh1!g^z8hA?Q%30f3v63L(o_Y^lbO5zNPTrYgeEQ*o$!V!FPB??lO)_ldX
zH@ow7@m}9xueWArUC4LW|1WlI!k%{*t@*b7J@c<G9hwX47aYyAx=#7hV4461!9s}c
z8jwlTDmR;RJH0TK0K0HH(?s^PScLLIXm!Y$F?_2w#js;Q2j6!(jO{xeqT)W`eIIYX
zzbO4#a;Hvo$zfF6+=YaG@av7|`mV5gmV*}Cc>cyFA<F#wRuhAeDAaU{hx5YARupl!
z8vR<FQOjjCOQ1}yw~EU<5n{QU*erK5etzAZ`B%R7;FXWQ>gXTmVUpE?g(5lc6v9B4
z-3k<eg!{fzo-k;NRthkJ1&mQo3~zMXjV_NvevxdRseE#~XuFCcxT1j(e%29lVi5Vb
z7bRt6G^8Y+*lnHJuu(2OBVr^`_jyN7kJMda3(mryEYA;=GH*5)`)X7n3SX#sI7ZL{
z*gD`o=WI};MYEwrD*papT}bTuwY>DGPazwNb@AR`tP6P`(r#w4K2FgQv5Sh&^?P%6
zT|K_-!F}_AXAaEaWp8%x(S?pxnJLkzSAh>68xDo}J)`2pgH=3luvS{a+dIk@1^1sj
zZw$<HM{CNk2QXaH066GCJ|4r>s0^g|KV<mvO<7eqdi)Xr6DZEZs6$?K=<#_yd!X5$
z*&%WL|N1a)UawQ7Zzn$Iu*3y@6R~z^91v2`wYmW4^{OgV=k3MY;Ya=-1DoY;#?P;*
zGv7Ni?Y`w*mwt79p?0y@?X;Wj3v{!174OWobG40jua;<v83HgWX=ZsfXpC9pBVF90
zr+mgnCI7%i6Z2%)JSRs(QK;)?tuj1NS@Q5RlrdyMuv%n$?(HkP;L?Q+L=rE|(Wp&<
zAsSgj0mJCDQrFe#mb`08vX9}J(;-=)9ZnXr5Uq_1C7=#`pS|B>!9U)>IuAt};`)!`
zjwtf)b4Q+J`*vN#?S^?H-YdK7JN^3eyXN0rIWTrzoaQon7>Vu&Ilm*^8@njj6?Y=8
zL6Jr-CuoI%B=0zG;FTA~SA>@zOMy$fLa%?bJJSvvMpuqtsQ7quGQNuMZN#VJISjfX
z!jt3kTY5F+im!D~UJD?QSd2$mln$0<7)n~;2Hk}o3o*b`W@<c6D}hi@`19_N*g?1r
z<Kz=|asj?A%`<nKpZT3q*zfkDeqEh;{CMYgJo^ut-oFkPO+4=)Nsbq2Pl6spgT97C
z7OYYc(HX_4Ht@Mo5Lr;v)7QYeTahq>+BOJ3IE5Qi`Z|19f?)DF2-t6=>Jt^*w$q_0
zvOnYfML*qxnCrNZ#b$j!&pajFlt2YdtBVs3S+Lp(LaGm*wuK6l=yJewnP--%fJSlF
zJUH|^V}RfVQhOZdV@ZsE=%_RIPHigU`->*Mf3d*Kqch^%Zk!O)`-Cd8d8`L)XC7Q1
z%)@oH>t{NYMZsxlN5kGHz{UshHp%XZrrcR%FOyJN0SDcUVe#$+W`S`Px_Jy7!D`7C
z!L-8xWi<rlw}XAOB=zK?_Ir^z%tQ)e3`XIq=t$`~3M-|hl%jZtE3bp|9Kvi=ORy(I
zfTKy@XV^jDobN;-ikLqq(SmrL$E)_j-OOaUoAL8I32J#x*Tir9=1cFr=f3gp<lIfU
z=%RdjaC&hxvMp|!QU!{^6$dIb<eOrE?Gkp{NF-MZ;hpKl+jpg_U?V3v3xo_VU?(n$
zUCD8djDp0j@MUod#E=2@>hT(8o3HP=XVaw~MX#32>)#FPs+hZJim2l_Hz)xo36$n=
z;yj=;+JUd85~c~ES|p{AbCJjE7$mjlfh(=Kchx3bI6^CX^Yt!kUBGvmkk~{`7dvsg
zS=iS9c(G1ERe50jM2Gp5UlZPk29Sp(IE0`t%rq<oe!#BR5-!XtUfkE<bV1I8T%-Ob
z7;0j031QCQXy;%Q3Yv(CgxL;glPjWff+m@F15x!kDHOCf*G$y}>j;x8O7cgc6C#*m
zr2Dl&7uaL~CJIt;#t|AlZ#9z61oc5rcs>@5phM!=Y#azJ(v9}=o$hD;LUiqSBirTq
z-1fxI+^?^MM;=|h=+$pL`lVRF;>Y2j@?{u5C9d<N5_g10z*hqoYdrBA3XNb_!@euU
z9o8!Dh`}2~9AG^_Js2;fSfG*HxYKKwcJJP%TR)cc^%xF}ZVapjEG#1>!(iB!;GB-a
zD%y>iSM20>_cnI8%R_aygUu;+BQRh>M~aRcJCTW~abVPBiksCfxaB|xh9!&+BB5|y
z9&aG8d!A{{{p&)$w|<`cJ56G(#6lk7fq7bFZSIz%dNs+*Q`&P7J%Bas`8{)HuUQxF
zqnyPFn1wBkE#cZOlvGM|^bjwhxYsm9z#+TyGHe+`P_Sl38T!VVNVJkoMpS#sXlcnl
zfMe(y8rlM`z;0r<*F`8EpCsM4o8uUFX5OpiEJCxBS2<FM8twdHQ5&&#sD^X06AkkL
z?O}&9I1)qoa`9wq<sgMVO8;TeJh|q=3u$+ItBd=Wvm*4S4nVgR@yuTN*2_P?J~_{z
z`@&}mYoKgKhZ+!6;@y%GG;@lDZ$3Ef#BEb?j!7wJNpLgov{RqYw4g=UU?o<$@j{Fj
zc#>?3NCtiyxY$;sc4jj7$^%0~7&<FSy>yFnam$;p3wl`pF2WB(RP!yxzr}65SU?K|
z%c7+~;w)yd%IavEQb9TSQVHtixPVgG3+9Rr7I<uY{Kfir_kXD~_qry<yhXa)&Y57s
z>-WrX=26p+{d#fp>-S=_UGiPOe!O*8KAW2mUzpkWmb*n*AFC%#H+^wkSdWV02e<)U
zFPJEf7H=F&6H4qGP#1!>d#h$#maG-Bb+930EP-|4V-BHJgkPZa9mJ0w1JRkBE9_nv
z&%v~NTdCE+=oItsTGbmQoZqQ9sgc(+5?;@68Q4eQ<tKk2rvr90DPUYR^!nm;btv?(
z<Kb#;0brWUVgX&&x0h}uymC7*^xFlq+zC+2tt$3KXU^fyZ}^5QZ|nEmcQ)km*NH(9
zEM0SQxv)}zb3;g!y~~Nc5I9&_x{Q2bSamN%w~9q!APzN$JYf608ua!~o<}V7xG1t3
zv@7}LfJxwQjxHKzUrXY(Ck}Gl*6(Zz=ge;)n3!0<KW++n3`b7?kBW<;;4#h%cqhFH
z@F_83rQ2;@BeF$}boqda;@>S~$B?jFd93}T#yoVPF?&sGc6Y2fGvDka_SO&VKXYI{
z`-TsjasSQh=WsUN>Bgrdte=}(zdy_M{XVlUKEwJx4@`S}asAqth0zl_NgjB{$4{af
z=|Vvh?P}$#p|mHfJ0d_b82V-G+o%Qs$IXdQ2yhi<FH?1{b(HOi-64XRL33QuOvTb7
zJBf)|Jb$7uOZ>l+lX4Q+B`yS)kM;a(CCK||P#$`O2}glh3L`G7iq6)mLKJk#EMSve
z-bBe$jm%>LiO)8+6aAC767qN<sET*8P3|2#07U`E4dee^AKKTy>G&Tex|~$}4r)l+
zQg@ve&rS@o(n&jR*c%!5G#dA2*e8QR8W7~nvUlUPiwy)NSUTZbt2D1vaQc#R$i<!Q
zSTnOiZi`?9VCGZBO;3WTRx$nnxI~5lG0-5U@<i&{f^tG5t0Dg1iYz;Lb!Eh^gndQY
zPNTq}9PRkHOM#2fSKRK;V)1xtUBJK4n4MLVejW>WgbsGnu+yeRZ80_GFAvs*d;W*(
z*Xq*y8N-6X;K_m*8oGf_2<QpjXG;vFj=Xo4PAQ+OQCT~H*5-}EB;bW(=r<$J9pK{3
zI|r--svveMjIU>kBe3_De7~jZ1^nf$26YU=Zdu6r97SU*2^vZF(<o0oyE`_DhkIIt
zFuVoMereK<9tGUA%3#54AwDPY*^?5w+dK~hP-A!tt7AZ%={y_Ti~li;hW>w63w7oU
zt;CP7`NqR<?q>eYh|`)t^)h9ePr^Fof*NJQj)*u**l{al;a+&jPAD2skuuc|z9}fC
zp0=`utepz;v3Oulm0z`^p%=K%tjt6qg*|FVp4X;&>>k`@d9H1%%$SUmi%o%(?k?^Y
z=3<=WMGo%d(~A)eY*be=kAN~2Oc_t196M6L<087dBTajpH~eK|x^*G%5)@?Dg~qPm
zlduV#XxINYn;g#wJsqwqZm{H!L-;qmS6ag5yGFfP5cJW~0yOJN4;u_M0WE<8j{C!F
zGbG9hG$h7s0KW(PfrVoxN%p|$8}YSw6qb#d2k_`d!kFRxjz!7_<?+u1#*4#Z3|MEq
z7H=$O7*0o8W4x>A%@V&(ob}@k`z1a{c(%-hLJ9u+;jzv_FmHfWfHh?>2ZT!AmGg(h
z+!BZ=WxtO7<+~kbxt(46my<EqR?HlKur46Y%U`$rIc(v;^PYSeEP-t`xYme(o5-mT
zSU3L85Q76^l8$2JlDU@EK^eN&Y{uVeGJ3><<L_1j4Jbn?L_w#9w3ta29BWIQ+y(V;
zVRt?LAKoe{!%_yqX?q`(RWfvHO`0xP`94TzI~Ul+O}dR9<-*-F<rbS+HnB*jf+fc>
z%?CssJDWXZcHiaArC-0C7%7`XqmVkm4Gqq&A19b)@6!ShgP0>mo}4BrhjbF=2oIuB
zWahm-FE+&55rr*OxC?T<#84TQzJO?QK_?#?EGl?E(D^%G7IHvhY?QVf%kzzyJ@5r$
z*ba2QSb$@fpFMh{If%s;%Fy_nV>jP*8X?DlD)F}Q`%6bMc%L?%^C$}hyy-EVXKh8i
zU4mvNHRxIjtTVw9S7s6M@zcOFDAw*I&oveQWq<L@4Q6?v2cLIpxBi?8P#%JQ?Kd9&
z)%o1N5f@hMLKdwu0b&sWzKg=zw(3mSOW_$rW(}OX>$GcQlPnCwEcv743)+@N&B;z-
zB>@phPyyp9DRTGhh^(4Cscpqw$3TgNDvscz)|Lg;5UXadR~A904jPT4124SoAhnjl
z<a9WO;DZ$EOR;i6Iye|wd4aN!Z<<&=)cvQxkHxd=WAd0e^YyJc`p~noT388h4#HAd
z7o2n6g!Kz{vZaA}6h7EjB+x?3JCxj!3q}ljUu_Tu_#}J12QBCs>kZVcQ+%9}<1p*A
z0Jez#gLk@BMiXoeu;YR~FLqv;1!VNK&3X-g#`E^%pWe$cPsv4woEE)C$sH~AeT^T-
zgN9AF#GGk}Mu|n;lB1&`pL}NFn4qRw$FeJEg8JhdYPOCKXP53qnB{ij<9AZ=zEy+K
zt2*<SykhnDEb*o1y>5de7Mo3@$l^4cLrFIW+_15#67`~_v#r7$;F-@m<)Wt|VRYLJ
z9~c(p#E+!LlWpv*SD%s#hw9SkD6|0=7i92;I!rJ`KrLhY-9XR+E;3O1fHCI?x}f5s
zv?w)70?Gze(y7m^THf}!=)G>Ev5>Un#D`;%2E`FlNq;k%m3!Lkz2*TkK7MTcmyS1u
zeqG3ib&EK}V%P=qh5M)V-|w#r$(0OIA)k~7fPGu;M$!<O%%{*X!{Zx45LtHam8LoG
z6eh9EhVdH0&D?P8<QPss$U`f$iiF>j&<cw`6qs?5ieFzj*2R0#>(J8+E5=dB9v{<o
zdalOja%HL1#wkz`w(LC7EO;_)8;DXkdOas_th-JZ_hHm#qz&aRFb|U@^AlZqC*3{|
zk)5;0%cI5Nt?It-M5yIvz%gG=9Q3Wl{E<h;NA}OUZ--32Ck6mcKn!nYt$I~wqohtd
z&snP-Nhhv*P>&+J5G)ulMtE3;VB|pC??yx$SP0;h2syPeCBK>dPSC|PY=UJ-VdqNN
zC%*n;3HJs5-UP+oJ=x>}H%8%tHNoghw?GtU<Z<R*18{uE#JxU$*t*WGcIciu=OGoT
zXV<UmK6Cb+51UKB`f20VKO6*ZS;fNhfHzaOyDl`x`MsW;7H@0H0%46t@C~kHqcHCo
z5SEwsB2Yf%ywgRfYjm-1sDpMv#bGX#UHU{=Il5{d(82;2x`IIBBTy$1aFQbBkW3_j
z6AOtc?B#wZQeaN56gGht8RT(SB;3lZDx=3CVd=+WM=VU5LDGieW5kZ%$!=^eW?K-R
zWpR+x#R{D~e%6Y|%RJ?ZHh=j-2!@`|{d~D(guYM%(35`N@i$-f)yF@O=~@^XHk2Mj
zoheSTrd9kGZh`RDh}Z9;RXH+PDy(`mq3qmdonAy3dggH4nc{`<qM1oZE^u|`<${HQ
zK~j{ngT2Cj+hA2-dyL`h(V(mhE8Kb)%IAddaUr5Gf(};;SQr-$5E0QpaCfGB{4{*?
z<uDORLmlNqCPiaf)IMd}-B+43?|iYj^c$bubms9riDq6eo3D@6Z2epgGY=cxb$rfq
z$<~ArEV~uT>qAJkF=bIVG)x>xRD)d<OvnPcVq#W-KVMN1W5x*Rc(6l8F^+}tcvOmM
zBh3PugXBy|R=V8rVj$Vdc_f>sJj*e*RA7Ri4%%vtk0Ts^aJr+4zl(+1l7|i;9MCCS
zLy>wysqGuJxg8}#)k}oo(NY_P_&5>EUkwWFjAQ$Wo85um&QAPhckXwK0oTne?D%Lh
zzq|>}Lyt^93Pq+T&x}G)Q+ZH>(E!GXF)Fr+l79>vGaeq4Wx(Pbh=jZ^4W|MP#Nx>t
zm466EI9e&)Ytbw9k*xuo6cRYpdCHE&MFosH$Uw4d6qaF%oO7k&S7JU;Iu1lVC@{Xl
z-T7mp__dyLO*8IH-tPEWgb)B(;XVM#9IsnHA3kknkDM`Q-tyATATEBs@vLd~cGs`t
zN_w5~InR1k)#5nBPBMopc;(;&qUaj!M!QChtvaF<qBCZP$m}~~)GGxG`Mjf02pTSO
zGLNO5LLgWUcEDGb${BC#v?8N;bW#BCmAj0rSOtgMmqundKfncVh&l`Ck>6jip76dj
zgvrMp$h<4_PVx7n(;yY@z=uj46yMKiA23ank2<xVxz-|hy`MLFKiB(rH+tLK{remF
z-L?G9^ZEJK&irMsSiN#x+F!&MRU_N_K+bsRjs{9VPfUiH6uw?>&)a85(14{54_o2Z
zk|`C@19{sVe-sB-z(zA>YRQ-jkcd^R)sQ$Pkhe7lD0uRTK|wP{yVgY6BQCrP+A%^E
znX!NJBM)8^gP6V-zm2<vVWiLoDLTtZpMMeq%{TXjft;a1Z7Ra@oDWt9>*w%Uv-A2_
znZ?<A&GPXtnC7v)^?iJCT?oefIuT6=NGaYg7%QVw^(i>t4VhcvSfj%R^wC%TD%f!W
zrowI_b?U7y7#!*hd)jQU)#wm35S$l6>HD41c_w}Cum-@~1jjOlLu5Lp+#eLg2%v~N
zFt{@^qvqVM(hy@4fmpXmvOx{8R6y;_s#C%1he_eJ$?GDWptGqA3rF){WRc<FaytK{
zAzB{wfBr&+Ip3}h{%&<wyq#TnftkPZHN*R|ZLM_KyY0r?8y#cp>f#XRXi(FCY;^<0
zycuD21kl>3+rm%`!%Lj-Z8em{&b$>TMhqcgKm~PVFy&w_<KxXne!rSjTFnlHp8jTc
zrgCi~5XVH3U9s4uZi+f>6mWEd$d%+SJT5rcUN49t;V|?aOMy)0N|QvqYgHN8knKT`
zVs*BcBA-K{pI+b3Xm(%nO0)A753av|a(#CfH(?G7#k7a1gnc^d6b*IPD7uaqD)8N&
zlj1W|0}0YFK?j)V!14Yy^tkBM0h?jYl84UHL>R*4(TQW{mx`u*A48V02%u|+A9%8b
zkaLFznFu?<H3Qx`RF|=kCl*Upgj3chK|7v;Bd}1V8PHg!NM-f1R~2f;$w@h!gSDw2
z01rL!@K^ogcN)xcs|KHULSesC881a=zJK5J!&!khY&z_e@o3fHDP9CtT>s$RjSCC@
z<BqZvp#n96tz$?wc%_>G!hrK!Ys+v36cJG2a_m=Ia>}vI&7HFFeX(EwmWVfv#$2&z
z#M{IRA4AOsUEZh{PyU_Njx*kW^1U`HsKIksN)~Dq_#j9)n?+Idm?b~+JZK}v2Z|yB
z7bXg$j>qxJl5kU3^7TWwwEo%eCn_H}<SA&FI`Zs7=r^x<BKQbJ9&VF4B-(071pG`4
z%{TD({DHZ}7|H<eJntY&11KxuEkDTaqovnu$!rQ<?{M;5^y-AzwOY{kdQD3jM-8D)
zO~s@`@VNM17FughwhQOwe8He{ccyGAWR6;+yzm@OLHvF8(ua=?&Tm5;dEAE)F<g$(
zlk+3(s$|z37mTCB`DbtEu=7?^5MPMmemm)kw{i%YI`exUaQDs^;kDzWvU@Mgik`f~
z5s}tf3R{+o&l7ag37Z33cix((i=P-AD86%1j$-1^3Qfqi2Qk{hkS@^B5{`PUV4Q$&
zjs>r8sE8e}G%Nw$Em#Z=Rz%ISny=}kh{eJep^d>QY~XyEl9TKKR(g<m>x{?cE_jYq
zC0-z@$WPRr#jh{O&WI_KPKxr;pgSupw6Tzb*NwRVu=>7Lm<98RJVy|<E_PmdusN0f
zHehpL;bgULW6N0xx>n}6TT|}HR%3Y|@#H#K(R*Sv77khhNa|t55YOGXlZ>xzn3M%H
z>(tdSF<~&nX_U^0Mc4)nK3T3bAOpAQtPXA2@|Z~ih6b$Y%m<>hhRR(MuwuL%dYKJ*
z>iU7zTcK7SAIzS*6C4v?=)vcmIsm<$a7!xPU-6aW*K`yh0Y8wO;n<LbUMBdxV2dkw
znz!m+h;2D+OA}u1$WAsWXSl8K*dT!nOf^hOKasoRLT5E0EK`9~1Lp<?3d`P<3EHTE
z5*7?}a9KI%6v~NRS^OVc+o<;Az+i06^WRf8CNBDsa9Yl@WcE$Mhec4*HdQiHAgf+c
zpn}yi5fkKarGsRMa8Ohnxi^BDl;N937mOqX61XbSB#rv1@B-8l41=%=>>`{~QCS`o
zQXzyI*O2E<!l?=Jh~4keP=<E!Fcmu-Kqx8IM_4KlcuiE0`&MBUyq?ui+CNzG<%jMd
zejE;JDwcL~qrN}GNN`Dz>w!A#6x!`+(UJS<j4t3A6L%%dwwh>{D>!*h+1hyhOb3_t
zp1f7v_ub5Dx!Vf+O`#^nAD(}3dRtcLc{M2NI@)5Bm;^<1oX9MSw&<fc|K)Dbs-HQA
znMRa-qt`91_oZbmia{PwIxYH~3kqI0c;O4EM5T}&3A~U~WT+518stJC0$lk1GXmEL
zoe#`}EHQ6O6(Q7xZIv7p2bi%?Wd&uRMa`;PAA~o)N_|I%9FODvLSI`??tnS9p45<*
z;_NKb^Qs_W=n6dfj4#L+-qO$&9kd}+t3dCABUPvO<-*1^P0L}|WVn`xgI<TqZKH)9
z>=ZyFDCF@NLl^{#=xWf=k8EEoi~BedU!JrA9IQNRbzlriXgr7F&dwUewi|g2G(@pk
z$SP1d58~@MqB#X@2;#3-V&;`B4kqp1y;I8TazzX?z&oM&jGL@0BC2i^+;XQC_`8j=
zcuS~>i4Abhzk`jjP&|PJ;=-JXf~}R}f@B;=oktGr4Q0BE^GdS<1{zQ1d8f9yeODG8
zbgsBvj{Kr-3O2CuWJk9avDH`{P!MJ^Oyk{$7q0q(7!QCMW}S+WlAEH{Wc5Uglh+DL
zr6)JRh1@4_?`-31OG!Luj~Y|*p}~j&Q-~Qxz=*LJ<isB-DiKoQ-A+sCKX^~U_F!9B
z2(=7RLE*Im=mjo_#*}7epkbm|w^Wpkp`BgO_rTCFl|#Y7Ryi89lLvKle@?VmqH)HK
z{BWfmH+C-Iw{xflQyfufTT8=y*>RyOX0Ccm2~Ut+U{ITBw@w3_CxX@hF*<=z7UYX_
zR$f=2#WW{#1%x)swHS1GI^Xe+z4QA%{wJ?}>*v0!>!<!kX@fUHVZ715zg4uwyN$AV
zEfmCSp*ix0J$LSG^F4q2^1-^O>_j!<o-kG>ub~K$1p)h66y0Fed<ss9ofMW<JVY#s
zjbMhA23L(@@2v2&lE=xMW%#9|Lvf+xy`%700$>|rDOl-d(Uo^i8Odg}fzFH+$nuxO
z+F_Ol?w38ek%tL`sg7`FW;&oq4wH&@cx%l@PLtQghK;0n*vq!BhM=2yulBYL9WQXS
z@!DFef*{;S8t{n`R9qDC8~|;FDv*H}BSY*a=6j<H&)vS&VKQJIPjdq2%i%Q^nbE0D
zF`jcuC=%NNsE;w6j6=;vpc2q5P0-F7qO3gZ4!UUPVk(AX@i@dn{`3{49KwDe2S&(!
zXPeqdRh{Fc;vg?ZS;+Im@36q&cUBldxV?8eR6cud-H4r+xzEu4(c^z||9|nPAGz-j
z%q{x3(^80DXup;_f!*@N6Hh42^1zFyhu0_n4sh~#V#W(OnmJk6i#q8<tR|4RWFcyi
zS!fj>hi|kYd^~S)<vy%jSd$bG2x;c6(%b<5uouUSx@lbaS*#)#IMkHMc63=%>T(KA
z<%VZz*qFnAtqPAiPC+uIMK8K}z$JKo?8lA53x60uC{TemrWEe<ZRrRIffWXN7`_2V
z-szRG0+&m+tA(ZPBpm9vL7yt-NrI!KcpOZcY~w@euM(<7l{;p9a>9@o``KAr3a09m
zB`gemtKKabE~aBf1sp>}FU${|>r0^pLhHc8UlVk&2<^eV(++qN%H^C=e-e)$^O}CM
z6IhKJ36~)~SUga;h9w#zY>;DD9?$(F**zRjI)m_D6{av|bHv-vDr|Tmt^dDwKfXTq
z##evcmwx}@ue|t+AN`#d{mg|Ycc1xkfn4r}c)2?PZfPEP&^?BXMF=NAv#PODaLOB!
zDI0=j;KhOtH8UQJV(d9RhXf$JedbI{Jbp_<!&wEl<Svy87CJq{YCq|`nXByxuScp7
zD2#D2h{MluqA-rO+zDWtjn{cRDp%N6rc`)-eN*E7*`2Y`&NEaUDvr(0oFJWQP64GR
z*fKR`FbjejRg$8}EqaAo;((7IqoG{Z+-=i+w@qo?TNsadeUFVTF?UY6$9o0kF4!a}
z(19Qkyw^LjSjYD%I%P7w51F#wXh+>j;(b&l=i?|0oTRK222@-S&+dxlEJ0Iv{0QgZ
zc_M}o&lf3JDCC%ZbYzwW93J+&@%wW-+OY?MEsek`ZCe(49HVBY=k16*-1}Dl)i=HG
ziO1jcuFwAGZRgs%1#-FBP|MALQ*H&M@_b>H(~ftuch*0aJBXksprhPHFcW6I7EkuY
z0RI-aUz+?o9Vjhj__x0xzBdilM%fJj>Oef&L>%ju@b1h<m%oR~5Ew1IWhSv`jTb!N
zkYZTqwae=%a*l^oR&eN^c<!(c$SfM-0s}wJLMVAn3$TBtQVPzUtfz~;Apw<>q8kTq
zfI{FUp0Y_h!gYnM!^I>J1rCL)tK!&Dm?Q0y**So4T3cExz%>yVF+*J$uHvFZtQrSP
zfH^@n!XBD+rI3lO0(gdSWvMfYL0DAIDRkAqP>U4F2|ipu#-&3&hVxz<lh}#JF8P@Q
zJ$CW&js>Ebq)U#49!wN;+PH>#3iCkcz8uPUIt(`9O@4)r`K;B!ZnioQhRmFN*W>*@
zaBg#s4!-m?ntV9(@MD+%>3hEaFaP<O^Q$vABIUo94)uEf{$^q6w*p6hA+YkBjiWd7
z9shEi9DP&zc;}N(PL^0qjGWL2bKu0EKvc1oL=#{nq>EzGE-x`pW@@1tXyAmCdKi_C
zwVJNBpT)&LqfE?^BHB<SJr&T*WRd3^JMaODQYvKGhnhNI9`cT^<WIwEgl`9!Cg)Z*
z5=u?DFN(0I-3lO<VN$GmG1Ee~nv_A47g*t!!-Nd>0~qRJ-hrJIhMK_qao@YMawgEW
ziu<FGgO_e(U^}D7LXK+YkjvjD{F;WT%t>#^y^^hkvDl*UGMs}jXDkqNSuha+xFfFv
zES7lt0}>u}!YyaZ-7_<j;|kGfBT2}JIunZp786h^dzlGLvH+xxnd}`VVXYKgc0iFq
zDT-K>vMN=M`Qb{>>&5yxU0JDkDjv@`+k%ohxiR+Rcl{^t{nQ`6?9~^)>RMrnTj|?!
zJBFXPs&L;aU3p#b3u@wQ9v;eSKqp&J;_l{%I2t&mFQ?7m6I^mjIPt7ihyZOpU=nPP
zy>Q17UYv`f+-J)QPp4tNo_u1!X~zW$y5No^#K4;xaLObM7Wi|6)110dDJXFp4mu+H
zqX5>y;1Yw(RJa1!wKioT&rpgjg+HmQCQ2g&JWy4l69wH6iwQ$K&X>@aZOa9iAt6s8
z8Esn%TF{v<2cm%*rS~xhAIEa2hRCdx1>d}<t{<vSPrf~P3~=Wsvd_hW9gWpeVH|Wv
z2ON7xSS%RMn{c(G<gxhK931PM1G~=H-D9TVjbh*NJ`R>@z6MTzL*{B&q`d45BbzE-
zJBJkc)*A8V7pxpAX3S+U-$5#pqoF7=M)Ph=u>NF9Dk)Z=1;exb^0A&XD?n}w|MJ(q
z^^1RU{=wt_><@qI;rHL^gU>q=OTSe(`^_GZHvKF-hAuS?KSwPvU893fPL)SDk+=4(
zMyGi)1WNR`nL;LBru^tSc4ovBkwOnCbn3>sjlq#8bE-zVQd}ID$d-T6mlrUc4dLjR
zqP_;|h$^a@^CfJ83nd3R8};{KFP3}uw7_wPh#(J8`?$EHupuKgM}ZN?9K|iZ28f%O
zj@i>zo;}}zUjxt0EDFJ2(E+pR6j&uF!sx&OF)>b##cWTYo_SX~Ro0G#Mvgy}#FlnP
z@PNm>#u0RthM9wQ*t|Q6_knO{rj`y<31NZzo@NCL^)AQ!gu_PQyN*x@>?pBtxk*DM
z0K+6T>!>>bHp#+Z7ow%?6@w;+hMkT)THxRar%yx1b9f)Sxk7Qk%p2NKo?R$}wtmmM
zH@xZ6zj*t1Jn=s~7mj|j;g)OpyO?mspUwJ(@Mrz|`gXSyPI*4RzZD&OQOw)UJjBL6
zEm6sqgF-2Ad_z~6B;v9S1x|=Gl+IFEEe$+b^~gA`3#AYE;PfO<OcbLzis%esRF&oA
zK`~q~J7DcPOd89E?kyI=y;*5Hiv_EtA>!f66t=zjHpJ9OCQM%KU9t7wooUzPsnCJC
z$HFK$3?h4Sq)-U(tU0+R?I4^EUGZ7NF6d@a<ntR(u*RY%$vAEOLAzsGBo?r^kRA?Y
zmMV%COWrdblBM^Q0F*^s1W(~O2GTgB<L{LYxQiVm&35AbMJNa7+FYK;nT5JedZ9e-
z&&x3BJ+X-ZI|xM|=M2uxRJ<oG{CU2F9Mnz+^)31DB=OpE(`_5tRk7a-Gy#r8UVu2`
zV-5o`b4Vfm;`60FGs3q637O(`bpFBRkH77`pZTA<-nX|BZn@SX&&Bw(``T8>Px}4s
zz|ybv?{6m*laA+N7Vc-)I8Q7JM8?5`1k?X`LBZWFejF@G)hNLZ!Ivi(*e>xR1h%{y
z^dfd-P1{S6IUdz+7DakRT?oW4=<?Z*1jTSqF8ZV<6t)5`yu(4md)vwr1s67o4~(^r
z#Ootd+o;=K4oZoGQ)B!YL_lDX0CNW`XmUz%L%=i3|2-ufp+JDI%>&6mRs!4schp$}
z1_?BXhO=PJ3<~CIrV7--pjJX0HTm+syGCslaKDZQbugrYVwV>g#>>&=VlWIdEjU@u
zS`FC1upI#_aq)+E$FVqSeSc3MY`Sdt^{k-mwE8$5am|tM8P65Gw^(GnyoWozrU-SU
zA~jVGfT#BgS+FpEGn9`C2&lDX!c#o<FMW7(fAM-cSm{nU?RJU5)yTXgDU;XF<^G3O
zfA<~V`RV_;pSk{44L(nU2)OX_?dn2|Vqf2Wt5`<<mhb;|Vd*#8v0v-&p6l_7<Fzh~
z3tX(D(@A@VJgoAjaq;8CVbxraE*wcYj$jycJ!xya+?;$!BI1jdnHQjCK@|rTT<TyO
z9de=bS+1&Nc&9}UoMq4lM@d8C;ccc`(w5)aQkIVGKhF{HIE!8%BkwMVjS&PgK;g!W
zq8CoHC1F)gb~5Fl7|&xy`B2W4gJ=j`@I1kP_u=Y+E8Fb0L?y)EXTvL7DrD!q?mpmQ
z!YWs`MaCkBj(A3eupuhuf_6#pdO-uRk{L?;2COG6f><2UQ4d3D0v6!C9@O9~4O1Is
zU3phFE>7-y7}e{g5o#lbn<&OReHlFn=1->jV*X-OOoZX5@x&RYp(vUSQ)vmZVs(8C
zpE=yTt|OTz;GBuCG1^ctHT2Am!Y}c;pTB?jk#GB+&-|15j+@;s$OW)S-A&h>b-R9}
zPlH_Q-*e$U368m$gVLJ?$J}W5eQIaE?miyK0uSa#JB2UO&`-Ad$I_X4{+(02ulD4Q
zTii>>%09@HM3U+oamK?IHg+3DwrI1lt%V5{oBX5L;rRobW&<uyX)U~Pr9rJcd_jFP
z)NvAbzHhHqpYF_*u>xutW&s^Z`MIFxziYIM=B!DuD9~}DI|ZiA7b>z>7ridFEqSA_
z<bp>R5AW|-gpkt-mQd3uCmT!+VBru8tw!amH<ads!Eo;WCkZU}YNb1R4WL*}8ouC!
z7MPQZXyM7j*->FGJkH)+13=>6UO6tg{n`7RB=G4NkGe~U=kYyz3ZpefEovuO^s#Wq
z1t%6`aKanRVx)+#MulXc)nEfNM@n0!Wa1ns5|*TaSq=L9!8Yp`o9ilGC-?5@F$-Sj
zFJK(OLqAz2Tiq>%`SAVU@;5*8fAn+T-)g@3woaM5XcX#hU5xNQigsPd`F7jz^ldmi
zZudfB>9^{4MKQ<LHVqBEb_eijp5!ElJ78Dg>IksS@B~36@$WAjXosD%GLgYacB^2M
zAo~)6m6nQ7AS@RU1qOOxP>kZ!g2C;aEPe5rx|o*yJ;crwI}Q$NKvBoA%@W-XzUfRS
z#Nx)=bqudsie6*bh*Rb<qyuyjA9tcWNkB`0tB`85nl$KPAa56N+_OkVD5bnL$H228
z>^r+MI?DVMtpWSS0Hck?rE4_E8%5rba=0;N_nw(K!gh&&JE!bcX58Ss!)_39dWjL$
z=&Ym0?NcK`vz&RWvxHW5R7;8<w8Sv!D0M0bEQms#I(!nLaRZUNX$&t(1!`zkvKn>K
z!1<89Sey>&O*Lm)?CMVH*@MkujUe<HQ8SUl3abgWm5vb7&YAIj?|9$me(qNKxopF;
zw-w@T-*YEkci#MaF7CLWdNHYorFW`-%Z)-V=^DYsVX5N-{mVA0#LQH<PNm6>@OE3l
zQ5Q|=mT0Nta6z}9@WY5*PAsZ%8+a)9lhRzoUpguIJf)J8w|XZ-!YHT!wGacOy}3dx
zz^lQafkkb)sHCHwH6^ZnxKijOGfa#YzQHN3AL!UXrtc}eedU#Xg3ink<D_j$FYluj
z`M((bTSJ)liY!>+QxcgLlVG%cqg(H^$Qgpsh~mkETy%;xe;)}wz{r^`!b;$VFkMqA
zPccIPdj-nPO!b`f{+FY6sK^%$zQpZkogM=OU!ZGuL9K6LCjm<eG#tl+J_hK5cz@F1
zT6Q^;6y)?=jnWlCvmGYw#)nZ0ck+}Ogi>ltH%b)kl$u3z2JcFTOALS^!o%*&OEHha
zCK%L3Iseg0=RyO8p3G&T9^|<I3Pc$7;@s*--}EhC{0|@g*AM?MH&f~#3n%V_2cBG9
zxya-8+(q;6wmmN=7nENgv{=;fH}QKf2b~KaKi+e7xwlK^e=}_Wx^*#Jdb_T}(tV&~
zg}7uUlkw%KTewt2di4$mKAc?l$af_K6~_eW%=(^uLn5m{637jy3xnY0NbSKOaw272
z3Sp3eYh)&@XpqQW9PzowZa2dAFk)(nj@U`&COov`Rvq^dpI6iB;0nSeKr_H=VZa3#
zW`Sd36`xOCa<9x3&cB4G3;WFkvK7Gdfvh`U>_OQktje|KYH2%~l?d;ks88gpg2fMT
z(7aI<FI1E{nAvFOYg-kE!DOtVoK(O*9FE<#S^ybV$TJDL|Ez2z-*xb?S7Vt>g+&_Y
z44|XQDV@>}x|2(q1M0Ss;IkxLJ9*T&azV+3c`BU_(Ri!|?Xp4n^&(_L(MH#vcZQA5
z0RShuNip=~-y_E6(GTgtvtqTo{{Bms<oqL=>M*KM>{tj1UgjN8oF<*d`YvDdy2D>Q
zzVyr|KlcCJ``gc#x6SMn?vP{md{TGKe^>usKVB@-SHTN%+xWX_eUPyr;I<6&#NWk5
z0KdPRi}zKX`TBKT>3XvO?F}6bREMlmv9b+b$%$zw{t6ev<g`1F9YZXj0~OguupQu#
zM=K3eNFLKx3qVgk<EBw;94>#s(c(ab17={usP1;IaxQF%tBnpbc3vocC}JZCS=dIl
z6UZSD1q{V*f|og2(4u<>Rg7cP+D<QC7AL_vm3_-mR3VOuvxJ=FZuD<<XC;5TVMc@@
zg(ihJV+aR#N^t2xB}75AR^L-sSu<b`g5x}EmG2A<0$>VQD)2BCi`3pi{plI{15LDR
z6l!6m=<bX%QN8BD=GR8%Sa@%-<KS5if+x~$%!(md(4i%Uuo(Q;uo2Ik(!idg2pd~c
zK?4=`R>VXT1ykVniIRF&cf{CbL<KW6BC%tS?_2b%0W&QY@MG*$jGmX1*TMQ5zW(C>
zb@7?m>pu7Adyn5}H(n1T(P^U)aq&iRXLzJ$u$=UPB3=I<Kl^n-;LaRHn~OU?R{WWB
z?v{1sx3lnf>l5a1{l-23ngAF;=f7R%CAWIfMF&L;)s6>EtZ9wn*6?M4nSVTiqUvsx
zkPG-mi~_$Tm<BR&Db|)S@^rFG!D?E?gGch2?!{YtAPS)s5l-x&V;2heBm1!gg(f&<
zCaW4Jb<&%vt_v4cgkq3(WT=pHauV_^IVTlt4NGhrCsa;g^I!w9Bi}%&Lmh`z7>PO~
zeBWF3fa!@7k4s}kvj;=CFdQf61Tln0ofwP2VwxL(2M=7nL+33}M;1GI^;<ti*l{Qg
z$x=a+*PaHVMuQ=6-p1p0|Gs8@LcR};#L=pZS?ee@3nHH^NLtZc#H({9tbdd9rlS-q
zxIJPgBiDeT0Vn*<M}kWj*2y~@V(w(<%&8tC2T?esCyrvSg~j!dbQjL+vBmok7vu|v
zYGu$;I1EHoNlUS5Vs^gqo1gx`Z$35u>MNJJqw6g?42>{6!iAa{D=6Cdy2i%=o74q4
z7GCb!<M;7)lMMH2NG1NB?~98+Lq1p}Zgug#rJeb(v|k!$;n6^@h4EU$K(G;PyA=oq
zIHVIuB}kW<JI_up)QOVFoj@;xz%@;)omwkj@5rKYED>+ne>xUq!k43921A~KtWEKI
zM9je?Y;w97><UdXMTWJi-ix?B2B?E9Mm&HUNSPXs&GD#RX&!Vn+T{XjDDo|<$g@mw
z1Rid#_L51S8<4G2voev*uP66H&?P~&V>~?b$h|^CY(UnL+}xNluy~UDL;?{w{3s+x
zgWd-){!Z+X6BHswSTGs``~mJaAc^3#@U}8H0h0x=UCQ+&8-!Zymb-p|0YRNaY@Bn-
z76R@KHRwbgv!^-0QW!z=Mi;wue#!fWLf=_ch+-CycDi2q=+J7IY7m;ceV=3Da>D^D
z-+S*}f1cTRs>hE9&&U9jm@?QA$A#^IGn-=-UuWFK#er#RDB8_%c%s31Kld+x$9uo@
z4}R^RzUc3s))`+*A+HCY@qe&XP_&t`!UcXCo{j?CiX0n-mtm9mJ9OFOI2H>*jo))O
zUw7|!ZD+oI&CjIOz1QJYyhsO1UPm`*iK9FP^}oOt8eS2*_<Q7f!XKp}QHarST?ADm
zJYK?h8|l)}M5azpF32OXA;oYIFb$}HOX82Gf`DNv4J-Rj)q!#6ap_14Shk*RO8eiL
zV62xZLzIVq*y?+NK|)jF{??WrH%L%Amaqs@VZZTjK)FLu2IACstDpR}B`s(n>chCT
zhe&3mK_*+*VweZaABpf@j(OXa?>+p|0q2014mmsuXOQ;~43p83J**6Dvsg^x-Qq4F
zGdZM4@`8%p1E4(=+4vqF4(k7%ghH}ltcEf?8FQN=4$e}%9L47?2c<stVjX<Aq^@6f
zHpeSvym%6kr4HCofHQW#lk&}(#o~QA2%WW>A)DY&$wi&7)J`{k4?!7*;unvUA%q>w
zz66oy=)Ise4e*IcDNW~wzw@TIU-*>||MvM0Tx$W}R>+xIQgg+((G0oB*SLB;@Z|0~
zcI5Fs;{WKvxr^r^DbpA6bq&36vA^p&^VQORHXR(dxp0G+`vk$CaVQ57ZZtueB~Uve
zpAxKz6qt;J9!h7&g^t*`QF!2;$g>ZYs;Y}yz(E)pu>N$!a!JK%5cQzdBplP~g@M<e
z;Fh2YI~1oN)ITt3P@D&J@{MlQgADA@DFNEa23eEZo5I2rOa@1u?|=%>;bTY&Xb12J
zhQyOsYJ(%p8r?Y<Ek}d0Z2~bayjScSm^0WQY=N5uRfA%x&<&t?$72ZJo(0V*u#0L5
z=f`5*gAGOEvc#<qS};55QW2I7ua|-7m>%;7fk4Jka`v+sl`H^hahJsr3k`VNpx6$h
zE(lnJu!}^Yg&zxMCU97^Sm@~Q&}AFpvF99DuR9Iw-Ud(16*(7?PBl245lqza$NRYF
z{AO30JYd46X}N!A^L*p`|G?SJeO-{_i1#o)hs#IQXi*;RqE{hRe0}lwyyB~`{L-gB
zvHPlLpPFAft+3RrlWkN)=8%I%h{BDZGrxQrRk1Fz+*PA^qoBvHhjrnosfxhHQPjEU
z*A@fu=e!%ZQ%$_C>dco%=JC88pElbs=hV$`a*BK71e|xJzsD%sHekz*oJeC({_yC_
zu!<CD+i8)FhFNg`3*yOwaAZqR$D+~QfDI~Z_p-nwV<?%}V=H|`5XB&#*%0Hzt}Y5H
z;6aT+E)1t&cEn-S+^Mn+0d^oRl-2;*Nf3d}#J4^k^;jORbTDO1nLUX)K-(xBfJNqb
zP<-6cECM^Hh9vr#Cg~MQ!fT1Hf0!>|zzC`!%*_BJfk`tXwv25`$cP8IS@}7Y>d@@v
zE}dv2uYV@57r3)ULARSChAw+g78x(@l?h5&5x(6jhTh3Ab~TtH9Hk{T4B#|$<a41l
zrgJFJLT-rhLW54IU2~9xQS2KH1gk!SDSh>^07D=IygvRe4nMI##Loz!#PdA9Z&COZ
z3;H;zwM8ewuf))5R8NwQ(X`oVU~meEEIscwJoxqB^6cOLSHJwwe{+)5{#r2dZC!Z$
zIu0pO*zw7oc|8n02_8XLjt)HjJ=iQ@w%~qafsgkUf3{7PicTB_o}nV{(r<N|(evue
z4-V|7omXx!3R>pa&P%L2o;Z`(-%ir?EN0rFr!AXYSPl7Jw8T$m21UY48y%nyUWGt5
zXm%$Tb_jJW6%BO0%YhPsWII0-dR9XL(t{MOxb=+bI`RLN4D#alahHIu3q>p|?TkjA
zVXHg^9b#qy390({HCw`VcV^0(ummSG1mSpMGdSwTvzwn+mQO>)7Tf8gL5mr%)hPMK
zPRNpKbE2?`c;N%v&W?o*?Id~~<}y>m(6E)`__EoWQz4Zhwha5Xw8Bg|IMxEc(<{x-
zhyVz?g&Z1gbY6oQ2vo)+%>n{p+{?if7SHi<;(0g)buYA7C<Z+bnXwXYx14l7g2%+d
zkzU&*^xdFLBM6Fco-uXNQ<%#B`kcJ~+@|rE%g**t*iex|JN0_3+2dt!qyvd_sAkhN
zEIQ@L14fO<65%kr=ZF9LwQs)izkTcv&irBBeQ)zb*@knYkfMO2h{ylyLSA?0+r&R8
z!YJq{<mkFl$niCx7O-3}JOw1fg_?2m>!C5;QJwk0CHtwYXau%P#SjA-44DdiuGKC)
zougK_l7>V==^@>wAY+)7f(GOwZOE}Pvtq2OJ`?wM*eom~ZO@bMdB4E}VfJNAX=59&
zx&^#P+@`B*7utEn^F9uRVA>S_Hv2+bEg~y%#Dj^Lkp&@$C<T1)IThI=4c?Z4#jpoX
zx25b+h;(w1fWaAf$8y|P1HlkReL^@jh}{IC<^=^Xv0y?;FLV^A*HZRqjxlXYb1w`=
zc@Y~){h5Z3gANJVau;?A$gv!WYmLGJwh+g=LHvSbA}1dFU{D>8I@m2d_#qS%6ReeB
z&WX9=)z@UFCn>+tP8N_Cm?#(;=2%2wu%rS%DZe~Wh9_|K9PrX=V6&+bh_ZVkhR6#Y
zdV*P&bs)sp>M1|hl3j58NHA8TreuvMb`O_&zT>)yHUV$^#>>C>$v@irhH12p3;Ice
zPG+s3h}T6MMLmAcMLqs){JzH9xuDl{L=<v-jRgc9c^rb)LZ$dK>;RaTj^fY7oU!y8
zx4#o<jLn6o?4LK}mjW)W=h!$J$^hT=<WDk8C4YDvwad%uQ8Er{(D_di^4pai4zPMB
zTUGGI6LyGT34}<KuSb5qUR8%XB1(!~9_Vw3MjKt}WqvfMhr17IBN{)>@2V^s+huHz
z(dEND3$()QEz@1yVH=~O8SuW*ReGa1HKObi4GqE3<RgOtFBb_gEl@BJx`3V1F5NHQ
zLt|AvX^6?xRMbJ>@pyd<Upe6OD0s9uqYK62*3#qQ`C}*yc)(Kv4~CV1M4+}rXKIZG
zQ3q)d932P14lv~cUpy(8iGku>X{qeVTRxe1Q7|*;gwv$V98g!8!U?r-Lvno_qmdw+
zTImT^OIrB%bbyL;eNVCiV4DE%e=H)HC+yA?=F7%po>)4Ko*S@Wjwwca`~J;e_pS@y
zQx}t(OU}ZbZFu;$PZagpY*u{E=kxp-zsK!xTmBt?9X}U~Me%+7nja%RFWhH6bmd(H
z78l+P)V%qd;n#9AoED4D{L%&U^!g+{SikOlFfoh_Gnp#q$T1Nf8%8GcP%_3YvJtK~
zQ_nzq%-ilp>3OLu8x&WK-ybhG-PWv8MoULSxs==@L#RNEhxqlbaKPbJ0<~N0N*XeU
znkF64LBZHI8e=yS9c~mp_eiEu5V!z$2F`8B)Co$y<xs|>IhiqF2ZL^V9CaR%xy?i^
zMA3~~?QFv3%TQmoNyRZ~h5PL$#alV#A)8K#bUlelgt;?Faasv;r88<U1#yiRY`GPf
z3%fc_>tP4Oh8R8Rv86zR;erT1KtrHH0*hZcWs7u;cB+nK?6A!3Wf#-RB9w(Zox&tt
zr$h6@QQ<8s?;-2~f-h;N84~ejR~?%Rz&M^lCpeTEi+Kp85nL;58}Q|mz%E)hFE;t4
zu&aon(~(1tgs2D&#=l8(qFyx?^Im<{<GFoIUN$(dK*wCjP73dBJm(*I#qrOd|M2h|
z7oM73tl<^zcx(CnHZC~|EB;4OuZw8yvBGc;x^fIK(Us#9j~%~`U3krF2WGyh0UOL6
z_k*q-T{^IL?$QCfoWyu}Avx-8)3o8mkA}Cd7qwRfDa3|SYYg#|vBgFa;zl!on{G;}
zJWgH|e+;Bp9f<;&!Z1u3<eTN$j-=eJUT}CmEJe@Z(nf!ezvBxMOp1mQ?hlW3JIy9k
z8E<vkxgv4Cq1TbU$i@2_7&KmsB}yO)XhXEJd|!<&qIfN=tjxaGUPUpZD=~ejKj9~X
z1rCbWtf-U1i5R|-ULzI^PaJs!GZ->H^RDa&*+G*-CVF}gIG6%%emQPX-k%k*PLMqd
z2FgGx<xUn!Fh#)NNr4WuJ7ij65d3~QYVkGVXM&xj2@3I`IK$5+J0XTLr3ghELwX*R
zf=j=EhtWjhAlcbYQ#lmfyJ!8Jb~c^({z6$tV83u&pOI?`tQ>^Npkw#c0O9<}aG=@j
z0HMfDueCQj_dPJSfA-Pc4{R&q=vYtc$kA2DE*amWW3E5Bxbsky@4FtV)`Fv&tG@03
zdZDPHoYNMPTIG5gh4FU4E<g2CKc$^{{O9ro`#WdPg}>gm+JWGLw_f?rxS(1wi^|!c
z(pAMSuIm&-P57_S!_rWa@$8^9GMvzhnVwwC2Z!1bfyApx(}GaAA#&=ZD+>hApfI#n
z?OszSGidQlR61XZd$N#(;36ZBWk~twNw5SAbM)$ajpxfD9J5vnXSTPML9-!91RWG?
zX~8r>Xf=4`DE56vc(&Kam~~~S0%i_4?kH3vvMa$q4~j!0xd-qKb{uglpI9v<vKfij
zZA=LRv9$uu)q#|mV7Lrk#bAJ#0Q0q-LUtn+aT|y;zf!gcd#E&IbC4Yp<F0U}_O^gW
zQkP0eSPXM`!QTxH9p|k=IqZ^%7Z;0o?EYi-4oA{#HxYD)fX7e8d|wm04uv)xcRgq3
zdTf`2?pEe9@XsFRE8V@oC~V%6u&UE*4MMO8MPiXS_t5YYFZ-&a|MiJa?tbz#SHgPm
zSwky;JL&??w}&XG=9q6Ag5s0ugkZG*FF)-wK1RG9hNO(8W55bbojY;v%<m-iXcvF^
z%$Mwk9(hzxB$#a_JKIi0JCoq3v3>5v=62=O%LDjmN0RWY@FcN9=Bbm(Q`hK4gdz+G
z#F3ockEH~AkStKRD1r?GQ3a;^5H0P?5H+5xxQ`%<5QeiJ3xc>F0;A@1pg@cTPf!Va
ze^0`e$j{wsS7=P>w*neypx|Zr*Z`{-M-9<-5;}lRuC-T(UVuZK2dk}mjv(@HF_+=;
zOoKbX3_(#avgl$U4OWRE`-j14!E~g?wB#<?7)?FG^T196yFC;qEPT6j74NXMFQoXU
z)ehPaH2C!8lIjP#X@U`)HX>N4hoFoVCyU=ohTQ{1Tx1!5g#kV)*m>bNVAzRs1fE9+
z$GWf?b2W`I2UI|G)NQV@7N&8t&G{Q)lmmGlk$diB(M`ulD6U}6fE@;Q791<FfWx9=
zZdBPE1YTRptmX}Gz5ENG`SYD`4L<m7=2~^v%bj^W0NpkeMW@Zep&HU*dLp2mx~Ov(
z&Tz>#5fkp8hoG<p!2JWx;ZD3>JWlJ<Z#CPcf>|1Kd~Bb2`D^@7u1}uE8(paxLSeBD
z1Ve28kIr%O{6xrr$d<BjJO+wQAo+hVsvN~@@zmvv6pX<|p`{ZP;R;~sbZr^+23dPf
z4nl{^U8B+GHE)UD78EPbfgV<!|FE!`Q2MgWh+~f7Wo9{qlJ1E4L{?0Cb^imq2x>`B
zYEh;+qL5)x9T)-#stg5t1dJaSw95x?KC>spXl<ucelpCkV9qsC5X9t_?g~m^_DUg#
zOe`XSQmT;e3TH`J2V^>9Ljlsjrez0_z2ztER*#m1TL<mRnSm5L=XeYk9YHHj7dOBt
z-f4&L$!n#zN;L#rgCT70?B#v!q0ykupMBrsbKg6+F1`!x+<|*TfsFGS=fGUPU&>%L
zF8D#_7wPqh3nxToS%eme0ZX-k0Ob_B&b{66SU30o;R~PI`4}@zc!<cw8=W@e<P5c7
zAX)Rww?Qa1yX7=5^lb(Ew4ZIGRi2huR1bh_&i(C{_y6=y|8xnnERW2=(SiNYnX}>T
z;0Hq_<R}0l+kA>@v!Os-<FtcjN*f@MNjmtrMFb-yJK9xj9}Ed$qy?XIEHF^<d7(Ul
z=WYm|iJZd&DUz|MTj{ie(9)ocOGQ_Vq0ptxC3|HY$;Hso4kGCA3hs^IHDloe4;&B&
zwzr-n-#KQiQOKqt@eQQb=+c5!`Wd?Y;x*H;0|XN&12iw1;4aHHeMvEMeW$PGc%bJ;
zj*Q8i$*V3Q4>;Wh27qTwwy33DNGs}2bieQ|0k<55*)~c|#CzS4!I+`JV}hsT`&fhl
zImCr$DUapa@_7V;)0UHpdR9`DFCGf6O|V#S`o5zZUyy%){Jn4VIZkAhmD7g|rF2Qh
zJ=Jo5De&>V*xl7@=e{$Wf{Q`&4t6ba4yNNEJCIn!<MEFW3k<{{8UjX+pz|E0(y21m
z$gxh&p)zavnl~N&<G=Xm{s%5UJHJ>LIxfW9#6YM0tS;i)x^ga>HM?XRSDZi5dGn$W
zMMT->h<?vD0P!}ps<rlj*@mt2bGjYSOYY3^B+lGp_RilIzMXdUxo}#d>Sgha(L#rA
zJrL9au5qBPHe~pi;B(Gpj?oHNn^ds?2mD?~_W=O}E;?NJ7_>Q|V8L?)ED0Ob-#dQp
z&6Hum)~)C~f$c|L`AF8S7@l%W7`E#yj>@|boh$1CW=duO2VukS9EEw-X*b55KPy0I
zT^Xt|dcykUeNDm>Ij0xowT?matkc1BT;O^d-ufyrrz2%5kWOz(>MCRA=qkZ~M><vR
z*on^_XlUmvD_u}C6K>zC1py@R5SC$KO|Pp_s0j2uEAIi+!k&z)Fa*thF0hH{m92z9
zD0k}<(H42;gkqf&l^lhD(=hhj`Awq%QC5UivVg78FciRrhIWH13eJe{V`RU;_LuE?
zcjtNz#dBcRY2%XKbNKaam}NU>&QI;9KC%CSx-;Jfq14pFZCyDR_R|KJ+%a$Kq)+PH
zw{_Z}P}WSBZNtxP_5{43@a<~TuG500Z&q>V&b-C8V;szrFMWCV(LCg9N?X}Lon0vK
zvP~hkR8%-+1_h-trNrDDEnKmnvY{1Q$+Gkt4-!IYp9-H66ho%m!N>{&O5}MSvsssP
zkj9n)3>cOgqK^UhN5>Cw2#S}r%6`aHPx8p-Vm50PQebEyhZhjUf;qvw(~cKVPWD=n
z!7kJ93Ow1C?_Ex^CpaV+<t@j*-JNM?2G{}b1!B`!Yy@^s77-E6kf3z+W_Kz^0_VD+
zxrLGA%*C*8Rk9v&?O1Hs!4dE0M9zwioHG$aI8KU#XBuEb;mf?ZIbn`auB;btA6VBK
zuZt6kc}G!!IX<q!)bW0eoJJKJgfrwN?^Gp=MG4m*D5ZgzL($J1%5Bg)<2e$~4-DfY
zGbZk&R+F9&fa~JpMJzt~-pG3!o1L9~_qHpSx_^Ffap!5K9M<YirXTXqa~l*>=Y7_!
znUjpZxOkuB+Q_y7^`N#c+&p}(?FzQp7i=r8+n|?Q$#}U6W{DrqJZV35bZ9=h-qyW=
zGd=5|3P2EsidgpMkU$A1bSOYH>12&3iLgeTRSQ;2-B90A6dPpVNM<+cm4VI)Pzf+*
zFg?6%-BHXSK=ERn1ix?;b-XppLA_8WqO(mj69DT1((b&72v#128%xUdjIRk^7#IKs
zxu662Xy+Xe2}Q7Qcp8>r_~s1RqYg?fi`Xa@i<}fME{m?(5oO%oY*ezK+O@RHSQ#yb
ze4oau;*sYeJ$2HYg&K%%7|4U0#Yi<~?&P?FKaJnbC6*1_N6;l<)D?^_B7LX3vIz=J
zqk$Ii@Cjr|d}R<OiJTLCL%WKJ;4l)y4P+(Du8)R%&hd4i-6j}8c;9oP*4{>i8PA);
zK^H@4H{$>M;!ZkxUHEW3pFO0&Xscp2*iXd!h!(i<K44#r1sUD@W%9~LP)mHBZ+hFM
zU--h~XTN1#s62PJtmMScxADohsXXf<xea33R^Yg!t|Q{o`6fK_y2#hVQE<}nHN!R$
zZo%`$@9-QjFs<1xY^i&*880W@rsWs8zi;e=51aS2q*laMx#+4)l~iMt?~G0X1t7x*
zPP<F+%zHBILbr>el*4RI=|938Sx^BNy>=JCoH?Ap3q6n_j~ot6CQHdKz)=P&4HCiC
zEe{@H!QiP29j+5m&p-+F)|LXNmiYIM2eU+r3*`O?aTA7NEm`#9Z*y{dLtA=7zA~W<
z&uA%F103X$@LfD#PtXrMx}8(TP6(x%)>CQ_&XqmsrqRj5X%apw6G09ff?VXKI*l=8
z0S*E%Mu|(qaf7lGg%G<A4$Q!7hffP07jOu6AHk{F7F45wc;rxQhDsrfXgCZ&Cy0!w
zL-%B27k_`|oX#lXbB|p#2A8o5k4*!N$h<h6#`7(9<cEWbp3r;^<QR#;_1T5~E`G$q
z&O1#vDU29*Lh=6M@Ow7*kM%S2htGWB%qMHc3X6hx;8`1NZ5wvh`147F$ZdY<+iV8v
z`#f!!TK^nf`nKn@jc3lo(Yll0_Vb(7o&U_w{7eDW<{Ll$r}kIY7sG@>9gK(?Vv}UW
zpewT|k=ck;l~}~UlZCKk)|Qy!IH}^SW0NJhkiFBBzNPNP$VGx}e(bKm2uK(&RD40X
z+d(=baFHR$9!5RUvCT(^-%-Jb04igq<et}(nG|o!J$;{#6)<9109Ta?a1e}jIhEUJ
z%q!-d?h+t3hudEs7@9KRp%s?P=*k#8bYY8*76xC!1^IpEywRXtq?gcaPd2ypd54ZY
zS+`PW=}2HTk`Y(LqWg{(16c^ztr4OhBc3#%xnig~5e^M=Hb;-qOSpGy%dm)?6f~;M
z?KrB09}Jm5#oIaEkzxS`yoK{1^UjSbRkI-+{VW#cejzpya(%?dyL`CuDR0Ct=EA{-
zos%6WyUj6q_KLuFg!!+AlA0Ju#SJTr_`5_=?e!SPb1phF?nyX`p~3x2Uv>E(?VWLZ
z+n6oe2A;K{)=ANDCk;QDV}4qZ<FE_<dfRj3g=d>x0PF$4#Hqzj@xIwIfOj6X>mzgK
zc^7e`GXHI_z2$?pTAG9V9}chG*)gxrT`9vCK?Ns)u<OQ_!#Ys&GRHWS%EPuP!<#vT
z06h0h`7>Iyuq_C*hz!Jd;2~pn=p*+zbn56Hv&yYg*d)+nfS$;-K&*g{iaDb5a!L^K
z%z@Jb9%)Hg2@KlOu(+wRFj+E>V{I$bE+d#}yy%Wr`d)Rd3XB@Tyi<`3I^4o>Fhtdh
zED1}6(s{*X;V<q86GnHBZ9G^{o@O4v|2;uHmJG!*Od$mZ3lIjbt5K<kh%59?1v;Sh
zd4e*4lV|&30poH1=$cW0VF{3}eqE{F1f+-K?1&@IeDU0YJ7uoeP)hjo@v{ocV6flJ
zOJDdP+;9xOC$gl541W+MYujkTmZ{)Uoa?(nZye~jfyIU68PDfv4-G2}9LMB4lUQNl
z%(?U9^2yKK|9{tokuh=<yKM!2Tc>;)PJSA8zHK2mX>eN86)_O4@$_vwfO^1M2Upjz
zb=z1rCw1vJ(w%c>-qr_hee!+ok(ZhO($n^styvjrVNdVeMS4n~=YviIP-dt!WG!pR
z9-yU+NC*2<^1tQ;`pjdeOht6cIh8%Abu6+bu}ueSV;IZD$x|vjl&DxB;z<qLS#Ok1
zhmMHtZ&65CT!o_3k<bW*tDyxHLXwFt_&iXwnqV}!lFFCm{;uS_TT}A!p%l&Tmeu2B
z_rT$5ON1bc2nK~C!9ti(V3=qt6DdQ*){$2XpaU3pL7@mv`HmQk9m?Xk+n3V%2$caw
zGNh<Xo$jE|8w{LAD5#F?BJw#Ow42SlyP)9}d1z`CTlaiFzTDBW)IY0ZDeWnB_|bP|
zkHV^b=|hv^4I7%JScOt>dnkG_+c+XRV!WT|zG!J84OY(NG=>qkML4!&C{JGZxpTwY
zpM84&m))>`feSZxtF=tOhBdg8-B!#`f?A#nV%ern-6r2ZjlFV`$cPJa-Es3kmWwYN
zcd<|UHXi%+VCSb6^DCF^=U?(@c+dKMcri=Z`OVLamsX?CJSi@@E9GoXV6ugnhG=!Z
zV#(m*Z^=x_(!}1;(5PXb5vv84LzEX3h7o)zG(urT2YhxxzS!a>m!<bs<@8{<BzoMa
zLo^%*EHZPl|IOjQp<E0-u}-oGXwr+>({5;@K^C~cjtcnxLIpoiPqJ@0<KYN}Sc(NK
zifY~MT2n^D&18UVXz_MI7qo0DW(cAo9}rK$6ntAp3wC5wFcmU>4Kptk9G0?M8VDmV
z6xp9xIPjX_yEBn5{9J5tvyPx{AP9;A)P~o~!4$9?1~kW%K-fwfIv11iTRir?S}$Wk
zhwEm_y{$54Q=yfG0IV<wp|C4Tv_wjgN`uu=nODoPY(C(#Kav;;kF}yf@90glfByL8
z&wTbJ|E#7TZj<cu|8<evR%oxKL*FLUIf-3zQjxC<__hxIq=kj=W7`5$4`jC$^^-(M
z*V3K;?9cw}$;CWu9_8~7zQ}xkwnDYKRb!?JIzkv#A@|c!_iZT^+>-GX{5C)b^E4pM
zQ~O3QKpuKpp@BudH~7C0)4&rukWm&O5L|q5(31)S>~^jCd4swL-a0OTSQG$l%sMU7
zY;uIz0fan3!U-(N{xLx7x{}X~jvC4Cfq2L$^iYV7BnZk9eqTaU*^<|5cb?OTyh_?R
zF@A@(**p{s)X^^|f+&31rDx|qIfgBTMY9(R+Y|$8$ny@b-D`rUmbwsdgrSrBKw<a(
zYT6*?HmgaYC_{KZFmO+1S$NN|ko80zgkm?4-7@g{krp@<a)i9_aFiEDRxhV(qTfJ_
z>D&w2G{s{XZ2%DG2WZX_49JT!7-2^%J?_vEOs>pC^)&B7Qdb<J!YaVvI<Y#(V8&TL
zn_e|d{l9n12mYewm2Z>o*WLMP!_4a$5<XX#e%k*h73^);JO7R?1hzpsC$Vhmgrk#+
z|4D<_lZts)V?OcY@lTrHc*U#DN9Vid4J|<@mN>I8tpY}ew4X`3zSJcc9j@R+U{Ok1
z1X{JxZOE8EUC;3Xndv~TkwV!)7$K=bj?&&Od81@Z8VigRP84QH;+I~d*&K%%G@3Av
zSpn#3@E!5E;K^4e1YIP!<Kzp-x^iX!hC~+FP)r>bR1RwxC3`bD<B9lbC4~uA15AU%
z?g>BJC6)s^;bV8To1vq{92uJv!CAqoSg9kXQWjMiWkva*+b<u=Si5XBAm(1446>l6
zgbxeO$C1uIN1ZP^Wq8xT(Cu)ku#qJjTSL1Yc7p`J8)7lg5>q!j>H7^{dlDTjY0&Mo
zfM*7bc=%7^V%bU))C$zM7aNq>hLHkRPW=1GUO5&Q#0Vv2BRhgZTZD*P^*2h<e^VLQ
z%{Cp4Bs%es7(%BA>3}+kxyj0FtRIfgi(m2SU-;CeuYCQw*d4P9berqpHvIZD-uCr;
z)Lr_v(CKX*HuJ!1Cq@pfsG%3AN4G`Y#h=FojT4Vx*Sl?ZfaieXzwKDmq0=W)6YE8A
zxwIdB(M!yaSb|nqz~VzmS48+hW7N|lkZ(&d#55)20nUZYen24zG?;<;*L+qE4hQ1?
z<{_L>W&*a-cs^Y4cV_BUf)D`?t?0;L3MYS7$;l!D%$#Y5Y%hxo8zK?F40-Ea;rt9U
z0eeP=oCmz3yu@RzoWeV!)6P5ZR(uI{IQpL73rp|KtgA#?hH!X8mI7?Y+g7n>G!Vu8
z#KGD?>O{aKIoN{4HS8CT=r!yBEaAk!)rW}&^;V$|{2c5PFm%AX_TnVyY3Rv;6+Bo)
z(PL56H0dA}a}4&~v4QBmJd{U_V52#&4Y5Yx$OxMSz(XSu3p(0y;csw0!9O1F|4ah2
zd7gtIuqTKHaO6nO2k=@Ts%{ED@BI12V!FJ#^3va}86Pzbahtcww$A$be4NCTIjxJ|
zwo9l5MYVdg9)x1i;-Y*lnEkcDGbhaq3I*s%FZ#+w^XZ3PY`%79*Sy-0Sr#s01W8yb
z<iVHna%->7!3>m#iNqpiZa{sSyCmYgx5ALgu!~Xtc++U7z(c}WrzthKxE3>gyh)f6
z3*jHf;y$_3z0UH$m;KU%>efNy#6{QGlD&h7G)MNr=(?FT!8FLCizJT~_KSz;2>2&3
z%|)laFf8ujVKltuIUE6tZfoc`Q^5v~%OMiDP0`U;3mZI1z|VGM7KU>O43T*MIS@k_
zLo8as_l5?UnNBIidPl-F9Q<(_g*q~PFezr;;d!|d%E-w>USXCz$B;z_GYHOKMbSqW
z05K2-ojA_eadM~#!o^4Ok;&G<Ru!+T1O*c)Yc0$MD<34ZBr<S1fl-cDrPn_!qp=X|
z&2;{Qe9%~<k|K0eF;<`j>HNJ{zUk=lOMj`gXD@OgXKG+A(LafGaw8wl)y-eaW1Q51
zZ^P1S3gUA?M%$nz#?I^e*yahtg&wb$2cY(}mGIsN%q!peuJEyS0qu+o+6+niTY*XP
zaMUX03{g}FxUh|$JUDq9QHOx4i2G^D`=t?OsS*3#tOhlTsUyh<ipdQ5$kx!pm%33;
zkXTd>N6kdUa4p||D1#z0M%b2yU-6_qTIn2s-45AN5(8dzRhf0usC59kXe@?#K_Ghr
zEP&Vn0rOlAI-m}rH0t7A6o%1khSpN9=Sad9JZ2#J5~sLlXvpc{w`-N%f`ZLOuCXOE
zXGMca@ZZ58X^GW?5N~Enp;PRvTJ>Uf0;mAR8~Lt=JZwDqp99CArjo%mP1UZ;tJh1Y
z+!`n9WE*m+48H8d;bAU+7fig)W%nAe@HcAX9BqmZS8B-C@O5W4U(Y+8S;hC@{N6_4
zxg(1rY&kfuHRZ<6bv^~*9GF5q`4c5lz>Yvw1iNCPinlwseD4QVU;K`5+lHBQH+#}x
z@%aooucy%0?uT_ybe%DZ0BEEU!74W@L*xJPXYp&K8}V)Ud%j=(o*%b<zS~rz3=3Vj
za6vos(<HOUN9NhRvu0=g`F6vF!IsoOE*QY>z;tnx2!zg?lhoUa?#PUX#wvDdiTdbh
zM*vmZH0dBI<EmCW9dLhJx$uFRV^Kl@!TtBG4u()5XRUTafx0d1KC*RzV2Ta-gLG|4
zL*o?tM5*f~P{XOBGH=l>4dhzIz&WW1JBaxE-8uQF5FBEw<IL(?4Exx=7RT1wlGTA@
z2~V7zUf%;lf*tsrj1^y-O}F~CG+L|SjJOydEp?EZ4X;L3T7q?v*(a0$1g?C7Tb$bP
zW(de@;csn89rQATL68SW0y-+vmgt-?c;j#i7-8jI4uU`i`?1e_YVm`6XQ#gz-#SwX
zuK3#M#NQuw7EA-SWX6WD>!U$&atup*VaAL?r$yI2(e=fIf)L8&C-}U?pT({p!)L&b
zp*eneXZQZtx`#heN5R$IZ4EEf&WNYgrEQ(`^}sGC4HQqJK5nxeVCZF=DcH6lYfWKf
zD}tKVc$ylPas8kC$)7Ac^V2Y;+1%`X(_af8+1WL(;LaPK=IKNugQje<#9g`7aA4c$
zNyPNVU^Ve&CWidEbG3Q`<L_p@3RQA)5p^DLf$Lf=1gT3AK?P2FJVqdE0!xNeunNF)
zD=>Xq8h*_>6%*m4=K+=DB5BHnv5}#nwUl1NgFJ7pvRkYhldf8PEJ^(Fv%Q7F9Bhkg
zD_<0JvzEd**e?iQ1KJA2Uc&CfkYSY}gEpvN;dr<lRq(|TYAC$cmNY?_b9q;49bjXC
zV#+vAR%CkRo?~Y*R<;Q(b?Sv&KPbl<*t-d3__N{2I4bgZ-g!}6H++Bk(Y@C{`T72n
z4}Zn#8y<c2@dwv`u!zUxo;?}T8{MVu3srU{w9{DBFCK4>+XB#_(d!QlReUdwgi*DS
zMb}GHgLx0;Vd?w@{d6iRt8o|_zmF^z&}LVYhQoj@<ENb`!m~g0y1v^xWIq-b<($M7
zf38~eeBhRoI{Nx+{zS*jT{=2-{@m7$qjSgCNHjv1AMY1dyXdsx`@$g{+q!Z7`l+X$
z+TNLO`|!?=M~C+JUi1?4x8h=ui-=Xof_dJ+^(?vRZL_t_xrAQvc*bt=eTFEACWv8D
zsFb6|YEUoRe8!Uum@5yLuw$4gB?lc3x*@;@jQM+C4i3F9p#(q<K9pT2ibzgcGNmX4
zE|1v-l6+8tFAFUzVO=Qg5G-N&<D>&IW0a3>NOY73+%Pli)P0bPAa{a1gha+D-~({Y
zGh-y^ydfVaukMA+vgxdz6WGCF=HkS~u_0d+C>P^%g#c)(m@U{r<@=-%5_XmJzMPkU
zI*Ru^-B&1g5B#1&IKhIfKtH!6Zu{bA=Rfed#}~g9ANSx=_qlOpfAj49(+};>O_%X%
z3VQ*S7UxU4O(0Pj;p>IkngS@YV%1VJK}`X;<?-0YonrDtpH!a#;n=)WCJl5B&^-h*
zooib++40d2o+J!9ZTNYuL(H3jpPxo!JZVt5jc2}13{`jBCwarvzvBVwNf<sakU#$8
zKYs1SJe_Qp&FA*d7`u1YyfaXD7`UiN@#YRJ4@WIAUqUI6$tPRTBF~)imWnI00<sk^
zJWG1Dn9XjEUiq_*x-|qQ1S&?Z@`Gj;0_a}0T0D3#%C@d)I85FsjVTv^<RMK1&Uvp3
zhGCJGDgC(vB^WV71RZ9e{Z?TuV6`9u4zaYuz_Ik?x55`WyJNx)lie4QPdU+$(378z
z_hna#Cpu20XH7#cnBJAP2!LcJuk=rj8O-b^&U*FA9d`t+7&3Kp#5A&@wC43RFBlyy
zs+Bobh5=1Uo#e&ZlS=jS#qPiR#7Fl2As3#5%kAf<mHj`@-Zy>!`mtuPVgO8u*B;NE
z-I?;!VF$bvZ}Z(5?F76AI-_Inc&AI(_*@2~;I+p>9zBnYQI#*;C1ddhO|q`H@pd~q
zPrbzqU-iGY&HjaxAc|`lMBZq@zES9<{`oe+&$W7{Z=+&vEBd_Hp^(?9OZ@x#zJBb-
ze(ZFZW!p#7n*LqiZvOqwo_Q0xa?3DEqn$16Y~i?w?O)ewg-=)>4?Sh5lU0zdvR4Ap
z_u5tmfB1Vi;RUN(aCE*9_>5lheD1#E@8SgliFn2%Ws%^n1Jix%0`f4)=-{@n8L*mq
zKT#YTQ~!cdHcCq~f~FzKzEe+`Km|X?hK*%_1>RHyUgs{Ao|CCUqCxST<ZBz$i4ujx
z@}fiwHH)?|5JjhINk9dWjHOUyh{r$|b;P8B%`2XV@#-n=X_$zDJGpWPf+m4skU#@S
zLyK5lc$qec^qo8d+2W4a5L|=%Z<?!xLd&D(S3msk&V2WJ$LqEgriWfK{FTREd;D+L
z=kR_2BV|&IJ3Ey&v=fzyI1-+gWE;IF&WKBa{@`KGuB8~vvwGTC)h4hy8=QTdn^^o2
zES_=q)uaEiIr{GRaTj?K4RBkLy-}|DjoQg>gI-P=kaF&5giUy;$uLX(J<^Nnp(@`8
z;1|Ftcn<ho{qYxn@fX)$%;U$|bLM4ld6)Tc-<x}Z<)Qeocn6=1Z|C3$`CZ@9?FCb}
z<m1@3CH@_64@vy~jzTnf;RuR__q{?ey(A9->X?f_Vjw;)7yM3&@<6zFFW%=cIpUB9
zzRgI%#egmF`#`T1y8!G;TqrGaE&aST8pI4`s<mah5c}M)dY1D<i(LaLSBnr~QwA&Z
z-*yz;*EH&r&ah8ILpaCwvIMiR{cnafj5=!$lxrG`({j)v?JA07L!G}NT>uhxvhs1P
z@?CxDWQjtIuDTI;CHwOPbx#acH_ljk@FgzK@J<?duIwLt<oEX9u`cKbr{TE|JTkuN
z<*!@**8Z;9hwQ!+(OuuGRYn?yHhLXk7UhjLI9LRD*M{qH7&ZP8Oc|Va>DUVmG-i;(
z-=(E=vG`u?&edYNYg9#?&gG-8`5$-uxBf)a^uuW!^XGC)yqN|4dh$2xVqW9v_yqQi
zPZV*mTli~W=eQjgbH?UT%(<ZR*ZBDO$3K2!#XNNmkC?Z9?OV)mt>4r*sLl+M93|JP
z0uo(&OEfBcjbbxNfCFxajyo6mW^=-&EhlxYxbMCz7Zp4Pw*27hvbRhcp1QKLA6!|u
zGVixlF^-{Pn{5Z=`4`=4qsN8Ag3(!df~W90fr)k`mVyleFm`Nnk-Xj*J%*TFq@p1<
z!k|{Rwxl~^VFOnj^9z_+If|&`geXHEF>D*a9XNN)mKHTw3<v7sp{B*6wCGf{Wr&%?
z1rqehnJn}ZX$VYJJR4goVNI2Y1U%glG~x*px7^VaJ`T4?79auBw-uip7uafL|MX*j
zu=lnrm)fVVrQkg9;_+)<{l?{QH=WrZg;om{wV_4{=X@tS);J8kvee;cuzD`eI*n8W
z6o>1yg<#6+;B%N%_rXxjk<cU~RWUxsvj>~s!C~`g6kCJ1%QG+ew>#r^eQ(?BKgHeo
zN&e)_y{^B0zFql^gg%_qrK3}>homPJ_4;ej9P2K<?#}sZF6dCM{?Q-((Tx}L`0<L@
zm>+)C8_Yk!mXG0+wo!Z;{v(-{LmcwVQ*V_2imoCtM|wKxPz<DyMvM@UK|}Y6?lf*K
zk4NoPkoYq??eK?5JO13MB6UZyK+(M;-YqXqJU9i5gq$TItIosQps%-U$e9juc-qlm
zkpW(s6PPCLgz<Y8XmOFo^BBm(g)LSMr5AO=$?m&S>;p&&Gl)zzb+ikxrJ~nY!&z7x
zv!INv03g0<N!`l6ENn=|9W<1Sqf=)>Y$zDhhSWdvyF(SC;Rt%6Zoja;4O-OmFgqxu
z<%!8t3_XoL-Z0otfBYjmZ@KhL_xbDTAn$*8`s!D`arwLLx}Ya#M6$(Al)zqx*??RO
z1)SjO&e4vR>>-*`vw`z0cGxjmE(fNIV`jXj@;ME10{QPuu2ha<XO+74;p`LV?f3rm
z&OY=fr)7IS7r*>^{aT(6>~azeQ+tea_sj)-8&AFdpKr@7m%2m8&$m7I4}IuE&##!r
zk2ids`MF14W_}`55b1=<-C{@Cn=QpyQKt?_1ce1u!nQMoyI0%k;HD+f5q1TDaI&4Q
z)lMW`gi<tSy?Sy-s-h8Q1iVyOc+-%ojt$0e(ZCyok0!e5+=W-zbVC`R@B#-;&Vr%b
zO&jI6^P2`LAC4RFW)$*<l(SP%DjGyV_G+eMk-a+a6szV=yS83nvoU7wa42<t{-I>4
zBw8CObbV#o#UdLlUc;yhz%j@CxiTOFy!@hohpW}DT!<NhVHzZc#D&E##oamLsH2$U
z7`f4Y;gcWTdF!)JcAvTtIN<z))9YXVSC$`IpP&0)4BFre6wlw|QHcX!pG;o;kq~NP
zo6-RlKf^TypPkHzkxn0t2CkFrvDB0cI1J{7kqa@=UVV3b#=Q537R~G4zm28weCUWb
z6H7l0k~xjWxD9%#zpguThFAEu5EL<XzU}|`@xc#%@cP&++diK9g84V+?=!F1*)v~_
z3kVpuA@wA`q3opSD<vWGmpv7UmIi-;1W3#iHsDfMMI@^@NkjxYRrs(>M4<~T5HTu1
z;ecpEe%SE$U{CTa#PK@V%L6$Y*l}^?Lc%ma{<MT|Hx(ShmH^z<qBF(-lGCAlC<Q*Q
z8veP8!<|AI=IUd@CRpqn9x8i+LNr9y2st}*Bry_kz_E)NM}=r$Xa#tNyM4TN{<`R<
zO_>11;o%KQ?D=?s@se?T_KgW8rP9*SH5c^Be)>=Uc;{`;KGi*OJw{Rd_42TJ^6+x=
z>-Rl0ec$?gTG+}80t@<{C^v_x6zK6z1lJCH>9c2gxH_M}R*Na_V^4BNSwI$t)bThS
zEDJ(d!HU|Q`Ti(;{Ck|6<}>@)zuBe&-PV2Is=~faQF^Unqidltp5%#MTLEv2(PO8{
zlPrXz2TuI@2Y>JfpMPgA+qeGfzsdZIbN8F~0x|&(TzBLyR5+edHbz#X8HH#JL=Hx~
zd3cKltM?DQJy^;hrJ@HRk1;Cx!9v0vcZQ6*atMh9WkyCvmLQHm_f<eLMsaLIN>F&s
zv^4Z(8(~wyCBU2+O5yC!Pz_I!Sj2-`#@73`T<rMo0ZZiW!)pfy-xp&llQm!Rn2jkD
zlemNTq$=g?)XA0IIPzm5htES>Q-*P%*s?IEu$J|uXsS@Ll7SR2gwB_X05=Vee9E&Y
zPS8cO7=}*vFF*E?owr|nrv3c&6p@oU!*lmfuY1j#R=?YH=AN#~4RApT1HjT3Gi9al
z4zr~pDHr_n`x`+J@(Iw4L9i4Dv498nW|VZ*lz}eEN_n<9U)X}ck_E!tzT(%<b${cB
zTf6)0wc6i4A5qb*2vDxyCzjpUwgB}&bKAfZoj5})+_7(id*W+<|NGy6bBcL7Io6BB
zo8M~w*?kY1zfoZ0RNTQ_v6Xj=A%7AuBplHY=Y3g-9eXcRQ8z}nj9}Fi{xHH+VMS)w
zDf0q@*PP4PmP1ExbPxo)-@a3uSN2cg0U;8M*jUVvulVH4ZEm)_HCnK-rS6HffFWS+
zw8T?p(W}E_e3>iZMq{y=WM%+kD65OI;=Bag;I)D~?m}s;fZ|(pv!?8L8Nx9Xb(h6c
zwiI7^O5wpwg1PC;UdaIsjP(=Sg@=>;H+cO_Bjm8_)|NXPSSvH+#6wl=ynvxkqy6y5
zKeF@gD;L`*Pb)mvQ_$o8=O1vdf9;!BA3U>b?mHT*^eoB|i046sU=CL0T*_9VDVQlo
zjC?7KpLkuw?_tITb?HO{<%O7bt)|k`C!dd$O2irwL<1)1usQR&^WAs;z^r-nw@wof
z-Dp6?t)MVo4~>zBl_wSW8k*t3Dj*gv@Vr>yHUIK2|MK&PS*Uw+U-*pqm3z*cSMBVY
z*E6$(F}03FMTUljEYRURN;YINB#g<d3i6R)&T>OGve^gRDg409gAl66GUbpjdudN(
z>l*Yz$n?5Np(D`R*wD%Gc_Q}#5elaR;qPbU+YS0664hOmY0Cd|s04SHg(5SQq82WY
zu1b{8VlS)SH!Qev%-N>bXF>&e7^3>&xjEfIT!mG8N-Sb-cqPVR8($-S<0e!;H<b;q
zDeZOn@c{35vK44(SHWsf?&R4bV0qm9#z+6(o%bAGX)fGs>~?w7Jb7@*{;R!v-S@7~
zw_Tinu(rVB);3ybu^Y<2_oW8HP=Zs=n+-~V_0|2dahf4EQrDCg5rfmh4QO-TX{4Pu
z!`Un2AODbDuaYzS6~ANcX1T0|I@^l+^I^DLuh8gP)TAc`U!0`=ti4$HbDIx*ZHvG#
z%=_N=zMEIfr91Pnpf7gJ{<-t!tsIElke7MJ)T=HId~M+6?8h8J1%*`HUJjEka6j?}
z$tm#kx7(N);8<IdM0?6aw1Irg4dLQe2XVlRoiFn@EeT9&nSV}>p`yV4?;(`ie%yZE
zk<6SJA=xOaq0ZHnMrDRxuV?ySg_9dv%-D;Y@ol^(jM0yT&vR^CYf4XiPwWp~XhJB}
znmmwXRtcM3vC`89eV_PmpjOS<oS|G~4EfIkR$<pe9-?BdgU7sbvHAHw`Td>0HLRND
zwZZ|{@^k+B_|QIiaIyWh`(Na~FNujer4h0P#pFtNM8nq8Mq#jduR9NP)&pVxj^1nN
zBSsG4Zk0*Y+S1-Ro9w|+vmrI}2J&mXed3)%c;c`2<|{wYHj69Uis-d^lb=@XuVn$)
z=302Ih5xjozU}uX75G~D$v@{pjw1h__q^xk7IPenC%<5RbN&B?bN88dTau)6@wE18
zgDCzvR(2DvF8DRJTK}HACcqTv_N=`cC(aq0Mj;fAVk<m1LK)7R>2OuSLE)G+<zSXQ
zJRqfJwWg_F7d%!hiDlT|B!o&t<H{}_!`>W7O}Ul~J%lRwIYC3CQu6q**%^^71$gn{
zK#KgHIK6Gn8_&nul>=W_WoB}Ro|z?dtb!{SLqmLV-gUIJc-HQUg=1nUMMl9W)Z%<;
zr4YY=>hs;-{@8~Xe}DZt{LR|tpM=vckL@#;o^Af+{SUeCSzqUSxxpZoP~U22or`$Y
zL}0j!SqeIOHf)2>zacgkV5*kFVAwL4m7&&_J9I1*4GrN(cj?ik|KlHO%>5th?7e?>
zT0wk1!%qJGS|jLATM$kv>Zkp`&C|V>|JOwv&Xep9kKe!h-S567#XNmH`;_^;VP!sX
z-vj19jl!ZrK*HUzDKDJtSV%<~*zZIvjZg*b8tVLzQ|YU&of$AblpT8hISulHznTRQ
zD4i(7C%#NI@>K8(pBgekGN$Z2IaJzL#fU{P?7CM_>wINdYOdx+TY`H69dqVX;{sca
zWzpnf2U$B3pF-^s<8`=ds>N_3(GM?(juvPhN}}*iQ@InHNT>tR4!H95b1B>o9lh61
z(~CGi)ll+KV@e#~20b@;@p6;7@c74P?|S0TX214)hIA*HO`Y`p>bQCO|6}jUgCn`h
z`}baV&!HKOq?NRncfI!R+Uqqo#&(4}5ZiIgl_Cigcc91tq+Ch<2vzwfkQ7h^2o<N|
zO0bKnfL)Ma8!(3f$Al0kmBImIuMg}HeC>Kq_S8x%X=b|LOTSTnuYd1Nk2KnqcGtGL
zN~MuB8jWVUzxTc0_dAXslXs1;QNLrtn|LS89^}@?2YLm&gY)1g2?<rm`myhY&RrE-
zZP%TYQ=Zz1tF1`DuZC&02*r@+7nJCBt*IV;m!ipaC3)U|q$RD@Z<oAWY?pqao_-dG
zUY+}V%$Htp40i9=U3cBm4M2MxBct?^%U@1ki^{aw;fH&Y|3v2sN}j}b35{gVst6%~
z!YIySoex-8*3ZLH9<By3?7<`-O*#LT2eMjwK@;S%N07O~NDU7RE&Bz;O2{*hGbkbe
ze;4$I4<P;vX=G?_#s!JU4Z>h|MMZAn6YhjqeB{7a46A@2z4d2@g-%F!*vbEoR-V}s
zEW}9hBkiV6Ss!{Zw8A(vfjOYwLWWqsou`1wn$`ud3%SJu7i{e<kpA;VF;N1Km3GMg
z{n(Du+m0WVdlw6%oJyCDw`&b`{v|JM|9cqe^H|<*1wSIEld_uGo<kzPX81f}!T|wT
zAgABMFMM9GhdRd;vPe(^(SXlW_8TI6yC8Lp*)j~%u>X>UDLWnJ(5`y;#t&A5Eq5=4
z?7!dp_JU$?;JBDsN5A~_UIWx#ffacB)1UtI@^$8X%+ApMJ-g`E!C|_%UZ-t*!XVci
zAr0&x5H>;V90f6GIjax@*REoahg)dHt3Y6b?tpg3K(06hyGLYKDCIu?0PI~g44i~F
zyu-LTrQPSJz>XISPXfbGUt-R12xhD*?egcP$0H`hp)(FV?`n8hiSq=EKhqwc8}WPz
zg^=eB_C0~^b^?5LXIKpWC^mRPxt79`sLOgbiCvpv$737|w&#YJAeUOX|AP~$m$;90
z=s@rn5C5e6!P#kXY$*%*VvAF|DUKc4FTb*Ct$KYJ(Q2MMDO9t1I*wT94wKx0Gqj?W
zr!UYsvxylk9Xsi)5F3>z3ySP;8m?6|h*NBF4DUOKk6T7iXP4a^nn@mcPoj@)>U8NM
zY!-FK{f1a9wi7=UwP`O$$X=ZF`J(fBb?f-`HP>9T{KY)GIA{0mqOYXy^319+x)$+j
zKV3$XYiWxnQg#xrU7Qk^{}75hp)dvujqEPM=&wxx1;vSbQlc_ZdR+%DDo$8|0wGhJ
z7g+rJ2!jZKbhO7^j)0Pg__@sol{q9qFg$ed_{^dphV3>7BwI`s#7KN$+teK3WNQ>N
zscx%R((dq+2d(^mwjoDTk}Ec1mIgaM@}M^co_n0+Nk9k}wc~sc%X0^3{z19a9|xki
zpvNABr2(Fc+qCD&$D-Fi`M=>m8=CNP73{@yc<r`0krwpZhDX(Ff)Z^YxCU4sf%7PK
z?rcNow_!^qac<in$i>(>kirU$ve&X1=hrMRxB?W;F~BWsj>k+l;W>C(dS|u+ZYBpV
zpK3k)yP+6<A{3)PU(8_C$Hy0Q-=%_d<_l-;HRzqsR=4PTS6_Yg^203tv1*)Namkf*
zYqd&SnG-IAn;*(sKoV}?tc43G_gle~AS;fMd111qTVSD!Y#IVsLx7)!5blS4Jdul_
z(8FDz*9CKKfpac=++OF~U=~WT7|QNIguAd1%mOsIKf^_lAtDWYZX877|C#__+=_RU
zyZdP;?f~0%+T_j~{L~`5b0MI=QQn#J{lfs{-(dcg`0Nqw29}^|Sdtr}taZ0qR|CJ?
z((TBN^owIR9msK{%)UPIOZhiHe>nQ9R!dBuEYo7ShN7K@CermwU)uh9eOO=11JGui
z!+sGP*6IAZVm*ar#U#0C&sseP`TNV)48x5bONI!B#y~rcz^xI3s_jtQBT4Y}!o&n~
z{&fP@)7$mZ_OA?=ul;Z+8+&>UM*HEYFT_b-j0kBl44HmA`^CUF=6j#`#3xQqXO73r
zH0|E=4E<A7qRQY9y~1|l!nINLNG`eX1o*NTlB{)iL30={E+^i0U($;rL$f9a`}J5R
zcDJCt3ts12T1oBzjko{k{D(tN>CyKP-(`3v@#4#T(<uHuw06}XaYyB-!;Ya`uI|(J
z{4U)0@76`|j&i$u%g2U=L1SPAbq`=kxsQXQ9>?+)Z3MjUV|o-~?h4o~8eVth4U82$
z_Ux>9?EfAK-|*DW!&{7#X+OB_QgrN#DMlSJNkXk(?g?&h4C@QSvVIZo*ic@t$xXLX
zaGy3XyLd3)5xBu3AET84WU}(`GnDzl9K%4ImBnn4i;FDB3YLN#Zs9Be{#&i&&?Qav
z;0My%I+E*toZcguZ(&;sA<=xDd#_>WVg{l8@YWYfW5Uk-v=#I0WNIJWPxl->Oy3_F
zqt_Z=bRQqb*8+XIeOe)MeX(;@ej-oSU0_;{->ouT5JgLj!%Ku*KqMl)?vH;SK;c#%
z{NnSs{lx;=Fba~61h8jt2%0FDAD)2liHjM^(KQr4?oiup5Xu1MvJDh6`?@6%ahK%x
z;m$RVyRmYFz6iui0Z<b8|K!kQmAGLN=shFhTuEY>X()HGMxMIO>m(N+C*`^(k|*Ie
z8EE_W1Rr_y{^<Ra6LMF-#d;~Bmwr3QyqHjOaG(6<KwYmH9Mo6h(3*FD$n(edI0k4?
z5~M~U+!DI1GV5_K+_@4C>LumZYz!3A5O&?=Fn3?9mR#W<Hz(~lDK(R4etoj_*gHcS
z`9&0rJTadFbD_@pRH%;r!m-#z!!PVb_<uiv(^p+})tM>g(4{|{cIlrNlG=@7dS&{Y
zLKHP5-gZCHo^ny=p5SORtF@PF2sWMq;0b(<bipEl#nw;nA<se<hkF`|y%4UqccNTo
z1+p`=hf(wICW(tB+gSkMzexGh-kd>0;ljU<7bl8t?Eeh0dyWbdAPmIS3vFVB+a;sQ
zRwcP7cnl(}Hke@99ggQWF0{K)CBB&!a@~8tCCY<SG|)=<v1U$)`ySg7zHax^;hn}#
z<4hFtlV`(_I=o+gw_MfbT0_6uI(f=mjY;5v!?wCktRD<2Wrn>wvk0L32EYhwd*1K_
z@C*9}Y43gG5RVw#M$v0NR_<fQ$?U3T^0W6$xA$FM3fA5)sC=ZK#juExve05V-!OE(
zf#!T&dl6=i=}U__&Ui7;PPq8+FX`R`d+5spb=q7Xq-}h0F^-EvLIpw}qGCS}Ucm#f
zt<}m6KGxKo5@WaGdM>b+yb~L}RV=pW(bp7&f%?z{783Gy1_&c49ENJwz{n4hM&)E6
zTyO4n0(q9oP5r@u;Wof3K9j@WT_oO+6JZr*g&+k{XxA3N1~wok9hfB@b_Br=!?P&B
zg@lxwiHfRTgof<mow&OZpPoo?{<K>3?9N{VfB5*0@WW|AKe(8}y4=>S{o<)}MT+#H
z{qhG&iJe0u`c3ISXA#Rly23e3j$#pz1{F6Nu-U+Na<v`Ibcw-l$1dIwy23_j8Xy-5
z-4+jLZDe1P?<#OdFvp8Oa?#Q09UlsV6RSh9{(sV*aHgnJ?^V3#d%qUbY0n3Jo$R2s
z=%Z+1IV*~}rB=1**uH1!UnVE$$Mqq)ycE%RFZ^6XG4{JrZYU5BRjQjg<8+hcs^qMH
z4CPX7Yx)Fkd3F&|9yfU&3BEt96R_nc4~DQ*LgA*xBlAT=ID+rT5|E2oV~RWaaCbdN
z=z5ca{|l*_4*m^06U$stE{nt;Y+_N5eYGc0<9wXlS`WZB9GNG$U?7HHlo^Wbq9mq?
z-OtEBfApu}`;Q%#4|Sh`r?(?NmF^wCo;V_QOdS{Zj*jcMr2lL=(ZCK$@~*n08qEr3
zCloq+-KtUUlas(}%I{?<%2lMC?1i36)(zDQE62cb4F#XWTX-kOcGWhGD*@Naj&Yn0
zn#sPG9i4vQ`b4$Mkz8|sdhb@Rfn^aSQ&d>{5pnec<1EDxoC~?1oqATlEJeqONqS=U
z({yulmY%E)(&bS^!y1aXL^cOV`86;dka>Zwcr2@z9)CxBR6)m&91`YZ-?K!!{^QPy
zL)~Upx&S6>$N8`*DZtcu`>O%QVFev_#fXIqa+Rb=A&bGQCXn4eFm{&#gH8#rbpjZ(
z@3*3o0`HatS6IMTwW~x-V0U3vv`OxX;&|93U~C0LYT*@T?eWG{!EOSmmhpi-@^2o!
zKX~iGeezx(Qkkz%FNM_nWQz7;1uN52wDZUz@%7Qw`i<2xjm)<5U5oWZ&$#C7x5DR(
zZ!OHwV<=q`0-tA?3)@L9YP*=chD8K-fI;RAYHV|HL1&!5nRWDr{ZxtEdC}Z^tV+}E
z-M@Bx_Ms065j0D|>Icn`bfIFt5FCSD^kNGCLhn;A7^moGy*{6How@&i9zRA8?Rkc7
zj@z_vaF|}6es7>_km_xXC3M`Z=u}Xc?Ur1+m^D)c(H9(xD6(S|czZYlO8DBx;C<e?
z#;^_yH&CuHM<7JRp4l?*R1z;E(+^s(;UCDo2grpb@xH+n!Vh?na*<Cwc*^lz(YcJD
z7c4*NC&{u&nUkCVXWkAeb%CD1+u;P1FM=2j5y$Q<fGBr9#9bK|^uq_l7aw~te9PXQ
z@~cTKW>2Q$J`)}J$(VMvo8s`H{o)QoJP1Nsk3)Ipqc^h@r)Gv<b51J`=q0F133tlW
zt-O_<S3S<GLg^Z|nF4K6lQ@W)@pt_FX7=*{;sdn@MUsxIQ_ZJecYOBI_a#cirC{_C
z(js1{fENu<`xPb4*WsTG%;Mi~KHGq^xtLo#{n!!u$+J(<-?y5ybD&0B!wi1GkYFy>
zSmdqPLAm(4@0*QSDS@&OJNm%$k8p~+?mc)_{$LZkNb-2mnAStUXdxH7$2?3MMv=Hm
zM^vq9<bP{-Xo|*HsJ@lt4u1(28-%wsz%jlwp7B+Gmcfr>y+2~`SizVzm3Q(A1Sh;u
zVW%C40>+T{dMjTMns(j?_leIvz9V?ouBYS|((~(BKXAp_2Cwv6(DCAr+hS_}Zu#ZW
zaeeVXm9{f%!d)@KF37AB;0DSB1@?O3E;;aw@*G!FmD3EH?L0`D-+QDh^10XXn2|25
z6J^hh?V!z3j`AQAQ|Ot;KGSXu#p>xdOwK<10TZ<u1!IpC!7oLU`Gs~qy}I*-ihnPG
z(5ak5XMHipqJI1+J&+dlf1Er<_mwNOx>lntO1u1Ql(su`CLCIl+wEZ>v7-d__~i&&
zAgz&cL54n5;&w5K=bh)cD;9L{NH@gA#>(eom%@o1cdT3qeBwJi0&K%j6L;kH`Kx@p
z%iU1oS<9k96F#=%ou1@BXL@LyxWiZhua5_LIIq8e-|wO;DsS+Kp%vss-_6~gP7B%J
z{_Lmn9ea1l+gnX>^i+!TnZ(FXc2JkSckT3bxFfxmDz!oVYQ7Fkk?mxLW{?ZoWGGk|
z858G5gW(Sa=cPFx4erieekJpHX=NVi#)+|`I&HZwjBIj-m^cr?%VEC5VlkUZK;lM&
z7a@L3^Sg77k8y3Px%0Y1Qx9D)MY9&kv4^ylGrdA4=A$|G3!NZLf*<p_H!j44>8F?r
zdX629VY>9(E%Ya=*VB8`)xE@&DE4SZ11t#&Q|7dCd>wAhILw(9aU3ko=_wqICBUXJ
z1S2qBP=s{d>ikGLyzO&x(bqzN$(BD076tDbKX(Eq5QazN-$WxVbj8!;8f~E$4s(z3
zvDmA`e|-EK5{A-618M$OFwe5%5dxfgcItC90Lry|Kx<n9p;#t_I=FwA{JULG%719J
zXksY}^x0C#`z`3bem=HFzh?9H<fh61ZSNG|a-Jb-ZE!`-QbAKL4s|v~*#v8|%9MHH
zSaeaokJp7w34`<A{0_o6tlT!&+icr4x8oQ(XAVU9b!(wWpjWoq(Nw*>?aL#z7vEG4
zSMTU0moK{A@2q68O4P;p!1(w5*vCHh+%4vOl*%-A-d4JP-6s0uD56n;W<ff4c2g?P
z8Rc$03f)4<2L0AmQRXg-d_u5i1tuM#wBAae!BPMRt(^q}gcN8fhKqoPMF~05JP6_o
z#P_e^MFoqhja36@#Uyd@OY(ls=|{*PjsYG*8)F<6OBi5EPk@DZEB`J(UMRgC5V`gO
zg4{wt8NJQ7KlXP)Cno8~d!Ln`+q+ZTo)+}!r6|fv!A@AtB7QP*ag*bF?iT%f8_rjM
ztt5?vo}Gq<W}(A17jtoh=6)tMXtteOaIndj>B>6=KKs7u%$u>>VDY@lyqDFii*F^l
z=^Vp9=6q-N4gU?a#qdc9eEyrqWUn5Mn<PlKnhVuf`=g=irJozDT<}#XqnRQ)VA1=2
zGFAfp!eWc{UVmN`bBhxNR9SNl{r36|^!Cv;^k%<MSx*+Uuoc|}%?2$?=qzPEIAxq(
zfc2*kt|tnMGT7c1hcj5HZGjb_ob$q(`8nDU=fLw^$HA@ix^&MY!`jwnA`updaGt6r
zZ<q_kmld>3Geb2jFN)3r<;@cK0!utPX_rMVL813%6;Y5Y2XQVD3fJo;{oUz<`^Bx#
zJ}quGl)R<vuFtk^{8V6<qWeT88ai*A`pEct{b%em)G4Ma@51Y8$9$sY=8m>v&jK0F
zXSTO>ta1}Km$wro7tLjkTHhC$+wE4O9D3odn}amahQaJAc(~7rMmS58*mMEArehu^
zD@SVOi@wmPrrmlp{KP`t`g{ewXjs{AS6{@US*W-_uZp?ft*=dsdiwG1#t^-NgQA_2
zHiQBoawC5S@&NdOyL}5~WRF4Mw{2cU(+RYb9NrL6s9D8o&BCNdgQRX~$a-|66ko%3
zQsnqIKfd%*T_iYCTDLo$cP1#jahO8ze5_3YC~cjTAncl<QzGyucV+|xT|T*XtJ?e9
zT+nTouAyU8`F478k{;f-OWe43m$)r%)8wfzKc35l{8V8V^ZmvMZ9o4aeZ$a*zK)IM
zLSTIf>H4`?c1n;Je`~^)`J0=^FvU3v@_YdHWMRdpb!s#PKFbO17;R<6+=iW}cN`v=
z`x}$9E*pohze<!tFxIo3@{}VU;G2bnuY(R<({%LFIX@V#U3ycay5&wGWHO&?VXq>*
zQ0HE>Fce|#y<i#q`gvQ-@u=2l)B1Di-D$`EzJWSjNL;|Qi*W>ihjURApftn#p#z+N
zR}k@c2OktJ#?2=^+Ww-iyIn-Gvs=h+4|HcYkUf4I91yX)mBMA=DBu3TyD!0_M%uMP
z6|hsVFo$s2BNDtklEmxS01^pg_ka}_IcL{F-5t4k4l^_K#DP8H*0dA9YvKq!xEuxe
zxmLuNVnE8r_&R;vrVG^#22Zy!bFh=cCdU-f#=zWrYi^q^*%U_(HNob{3@zE-ILZnz
zN6;0$+;PTsF^_qCCReLAK~e0$f!Qu_xJoqD%&$3CKeIi@Kq+4&0^t%C<~(Tz_74qQ
zeDm<YB{xN3ZT~{JdOtY($rgS8HuB9s{_&4L|BE>uLnCzMx()QUHRsSf%N5#a?QW^t
z`WD4W)*_amdxgOY7k&vRl7mBMTTM)5aTWjtPz!XVg52lCkLLyY<i#DnXMNhCXbTS)
zcR0o%{796GMGN6_?y11vT?5ALbB+lXg#ZGlogu4sFF2*UQ-OFvIdPnJ96TUyJGf7L
zb8><nU(O=@d?@6nTF}#uy1Zet`lGey>W_vIjYz=K8ETo$D1n@%D>xUFg+p1<pUsM|
z!P&LvgTp&n{9sR(QkZwz=G<vyMH;bk>)e<@ex1M!n%fO<^I~?+Q?oe~$OBYvemamL
z4E1?NW$sfiZ~We1Wy{wFtDEl(g36J8J;!@NFpIfQ5wwE$dBGKPJn9X)XnZZbX?T=g
zJ2p<gAp<IL;pJ`vhnfDM(doF!^HHZfLJQ#<RIxf;zgJArUmV|^q7ECM3&+J-XejHD
zV+|Gs-eY2X8^SB-bB<Z9&R`V=rJdhNx}h3`RU{0vSeV5_UX=B7u|UrF#4-A>qX)&e
z_w5$9&77cJ%W+PeZYAfLF64_X?qMVb)^F19J$H-x%k+F*+wm%o@;Qc)^jm6ckT(@P
zV`1_@6yz8?pL?~+99+V9w<-3O%t4W181DWhxS#UkA7#63?yy6M)M{mV2UEy7fWz@X
z0*oDtyS+@bYXe~vrS(c$*sEJ^Zw#b`U6!VbinuSkU+8wfxO|bh*9*Fs`@_?baeD3O
zYPxoO4gFTFPFpmXW-*?QPKE(wh1x7ja)+X}ILo5KkwYjxbb|N6;w^ywh=WZ62u4b8
zAnFBFAbUpX;x}HC8zzBSpa`3=@)RG>NrIw0Sw?xUpZ2`8ondFTcuX9od(sa4n+NvN
zoy{5Ax12@x`BuD_t6QH-ji>UOjr!diH>;19%CsqlVYNeBgdu1I3^Q{cRm~7}cCPs_
z@QKbkXtN-2phW^O3=ch-9*NgNIpeFdV%0!6+z=d}p8K1ot5=y=33uNK=tN>aW{})$
z1BN0o_E1we)2M9tUSr_GFV(6W?+$vfVfuk&iVC^(hJC#n4h*MwK^OBPoZWQoW2@<!
z!C`t;dcv+oSV15p0`Xg&lUKO7t^m9oVVZ;|>yjK^IKnSDki`R&i;(%ED98Pzbd!H9
zH50av=<klW4&w2JTyyHC2`ZH{ZCG$p<TTk;J6!+v*3m=sy@UJ2*AMQe@3fk9_;eKN
z7iuA&uc-IqDi{PJT78aw^Xd)yPwRvF)u`jZnG^2R3_LOm1IR=JQ-$)Rt^|zP0tiZH
z7|=i{I_tU(AKh30L^4;UvJ%u3`RP{PR0waE%g-wS11~AMbrvi>i^6<ofhKKpE|Jkx
zy}I$P;o1dX8XVYkw?8;tsEA`XzfhO%e_ko(eICY|cW8uOmVUf+)i_;MAEe6=H}?fW
zO1qqM9IBExJXKx??Zm)g;Re4M#K)QC;xJsu4F>R$6_jT)o*yU0I|1za9n&&zaZ}o}
zo7L_GQA9g50SXgG=-y+8>4(P-i~l@&nC?q|);e1|@8?3%U&=(Ceu_GOuQ8%8TYIj)
ze$6`lUehcygN4<fd@f_0p(*0#J_cTqKxwL$a_ECuQ-hVfNOKgP^4%M=odGu}<uGSa
zVR*Ya-;JiEBSPcg7vVNv){-LWwgqM{8A0872F%_fQJSch&beo#zUB7%z{c-~L3yHA
zQ7>{q?5FtSd$3Z>PZpL5sW!Z-Q`~<g{dnc@D7`9-XcUu)1fMW*UdSyh;i*8o;0+vZ
z>YPEN$>qCa;df3%%4vt(@dUsS@rS;A0>;Y4%Y|nf>@PBC$4lOh1R)oGPDV<9{3zXb
z+~D7bgel@bGGX7#`ChGb-Ah~47g9Q=yVzA}xBm9AwfYYR>iP<tq)VtasBp$}m|0$^
z$Kc#tgjZ%WxP;j#M!s*ZH?|}wN8Q6!KS!1sRa^j*f&r-0fWRya8<Y@s5+YlS%=5{+
zdXY40=iF1TZ2Zpf;O1{cVSNvG;k~-^eu_RGpZw$}SBm*k9pwtGsSVOaY1h8JF+`UR
z4AK?p=gVY3RfI}d_~SzxHoO@i4CP^V2w4<i>^Q&-A*h#&x$WdRAi#^-<HPd8HDHv~
z{Ty){YMC-3H(WX~MGvI~J1ySgM-xZs{;A{iv(x>)tQ7O*?egd2Mh_0trRz56cZ{x8
zzaNIQ24Ov>IAR)?Da_o7M`13%4}u)aW?6nH-E+|VE-RLsaem)Y)}*w-{jm-4c{W<H
zK(Wl09s-~k_MizeK~tEqd6=Vab`WM3U_)+LG)1|ISgkU4f1|ePTf_Cu->6nbAMp#g
zU(B(Ho7?PZj^5@g#r$;O?*p`{-k|NK$XDyMH7)p;RVuW$GB7t}wUz@qSC$fN^N{8j
zfIx%g%t-AM!X1nvr4PB_==tJbugH<N&k0TvM>v(I03DuA3-#nAJv22zJ0>U6&*|5T
z>AIf_MfZgWvz*N9QZ%F+8P`{@8rQ#>etugJ>Gl5X$MV;e3&jw1({7mp$>%V`E;DVg
zyU2{a%x(5<FNJRERfpdmL-XWy<36rl4(5JmY9`l1n1QV+-lRR74j@Lb)imPuxq7<3
zYh-Zq9gX^?v}@n^!-a}@uR-ajKJ}@UVtytM)5)8TexOEM(%ak8E$X^~I$e}@BK7op
z+ifw|t|FA75GlKvB+Lm%QINwoSMJ3@z#<_6V<m5EX>O+l`hnRQ+S#0?-KJotw|AMM
zoqpcCQcz#GM^RYDd_tI^RrIn|<LV7-*Xy^6NMCFVW`=X4c7eI<9lm+i9kUHUC)`DO
zRuS3GlCgNa4!F>3*m0uuG*c&A?R@ac#$HrFuVsM~W|K<rXOG~TBXW1u-1W2gu0v1=
zD+fmgH{CVT*nH<uedE7{VQI$i*!>QjU(?Tg<})kB{OrC+C>R`~7n^q{?d&fxW=Pc<
zU65{B8+LdpX|R?q01BWKA*p1Bv_9L#S{J~e^u!5zT*ow(p1_CGqWqM(qK;3{1Ljv}
zPtY^%HXUuX=-})$?S3v7nw4XDyZptZFyZG?MXy~oMpuuFt2Yge=&MDb*9gj~hOEgj
z1&{G@f98b4O|5g-gBOHym<xY`%*czc3x-tq+To5rMym?tQY~@NiFw85?@TxI?wfsM
z7`{QvZG>!aE)`{#2ZExh;lT~}jIG-G)#3W4e~qH*5iaKVnG5=7Kl|C0V!m>$9M88!
z;Y>g+3%y4D8dOzldTV2qes#T}e|313dQDW)Tg}gmh={RpR-HC8HcB;fV{B)_A2Wb7
zbi@F%d>xzTtVo;twPH7Z&>Dn!>TfRiGa1*)Kse@a8EA(g6dr%YSy%`Av$G({?gqed
zm3PJE(0eYFKTq>_>$Q#F9ci5Zt<|I3z7~bmLw;v|!womA6!Vp1<ybkEx2U5Gox94S
zp=r_QsH|7l8+7SFU0pFy*O%8D>WcJx+b}%C6y-R{m7{G4`Q`!}1$kGE9WqmQCCrqZ
zG%=bRqG||NF$)R9G1guiO~b$ffH~{Tu4%=P;H1E(iShv{V(mEdN-}z6ZD7M)<0D(|
z7#rF8?J%r#!c}g(@y3;6zH+P_E63^W)R6(xkI9tJvkoI_R0rt%fqHWJ;Gn)BNW1r-
zq_$LR>PjRPAhg(VU4&3`9-4OWYI0SbtXAy^kFtQ8PA;kh;sJQT5ar2BJj)`0PD<IJ
zm3IzoLyh0FIt}6O3V2aMD-CIbLPRn&xZ%#Rkqd8KHFW;nQUvYJ>$-C4tsE=I%5l1i
zdOr*pznEiZ-^<g)SaVcrdRrLMP`RSEge5&*8_?%cpf&`dUKf><EkU41oj5#|TSF%*
z@4PuI91D1-YnF4kJLBoBCs9zy3A%4)t1--i83ER@6p$X&XrO&H4}!I4H$BHti;j*C
zo%i{%k!@dGDdsE3%CT~s@uI#^G4IEuYCgF<vO=o$<RzU2ApN>rZNI2vyeKpDTk1ws
ziZ7VkMVRl1te}dF#yE%5%yr4>&t&TYp~}CQTX5#s33Kp`$OK7dq3N*OC!(PCgx12|
z59o-Uzhv$g%F6yQtnD>loBO3d?<^5=?tjp{5S60AJz-Eea?35Z*w^U)1sDL2b&+1T
SL$Eji0000<MNUMnLSTZmZPgh7
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/__init__.py
@@ -0,0 +1,13 @@
+
+"""
+TODO: add a docstring.
+
+"""
+
+# We keep all initialization code in a separate module.
+
+from pystache.init import parse, render, Renderer, TemplateSpec
+
+__all__ = ['parse', 'render', 'Renderer', 'TemplateSpec']
+
+__version__ = '0.5.4'  # Also change in setup.py.
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/commands/__init__.py
@@ -0,0 +1,4 @@
+"""
+TODO: add a docstring.
+
+"""
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/commands/render.py
@@ -0,0 +1,95 @@
+# coding: utf-8
+
+"""
+This module provides command-line access to pystache.
+
+Run this script using the -h option for command-line help.
+
+"""
+
+
+try:
+    import json
+except:
+    # The json module is new in Python 2.6, whereas simplejson is
+    # compatible with earlier versions.
+    try:
+        import simplejson as json
+    except ImportError:
+        # Raise an error with a type different from ImportError as a hack around
+        # this issue:
+        #   http://bugs.python.org/issue7559
+        from sys import exc_info
+        ex_type, ex_value, tb = exc_info()
+        new_ex = Exception("%s: %s" % (ex_type.__name__, ex_value))
+        raise new_ex.__class__, new_ex, tb
+
+# The optparse module is deprecated in Python 2.7 in favor of argparse.
+# However, argparse is not available in Python 2.6 and earlier.
+from optparse import OptionParser
+import sys
+
+# We use absolute imports here to allow use of this script from its
+# location in source control (e.g. for development purposes).
+# Otherwise, the following error occurs:
+#
+#   ValueError: Attempted relative import in non-package
+#
+from pystache.common import TemplateNotFoundError
+from pystache.renderer import Renderer
+
+
+USAGE = """\
+%prog [-h] template context
+
+Render a mustache template with the given context.
+
+positional arguments:
+  template    A filename or template string.
+  context     A filename or JSON string."""
+
+
+def parse_args(sys_argv, usage):
+    """
+    Return an OptionParser for the script.
+
+    """
+    args = sys_argv[1:]
+
+    parser = OptionParser(usage=usage)
+    options, args = parser.parse_args(args)
+
+    template, context = args
+
+    return template, context
+
+
+# TODO: verify whether the setup() method's entry_points argument
+# supports passing arguments to main:
+#
+#     http://packages.python.org/distribute/setuptools.html#automatic-script-creation
+#
+def main(sys_argv=sys.argv):
+    template, context = parse_args(sys_argv, USAGE)
+
+    if template.endswith('.mustache'):
+        template = template[:-9]
+
+    renderer = Renderer()
+
+    try:
+        template = renderer.load_template(template)
+    except TemplateNotFoundError:
+        pass
+
+    try:
+        context = json.load(open(context))
+    except IOError:
+        context = json.loads(context)
+
+    rendered = renderer.render(template, context)
+    print rendered
+
+
+if __name__=='__main__':
+    main()
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/commands/test.py
@@ -0,0 +1,18 @@
+# coding: utf-8
+
+"""
+This module provides a command to test pystache (unit tests, doctests, etc).
+
+"""
+
+import sys
+
+from pystache.tests.main import main as run_tests
+
+
+def main(sys_argv=sys.argv):
+    run_tests(sys_argv=sys_argv)
+
+
+if __name__=='__main__':
+    main()
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/common.py
@@ -0,0 +1,71 @@
+# coding: utf-8
+
+"""
+Exposes functionality needed throughout the project.
+
+"""
+
+from sys import version_info
+
+def _get_string_types():
+    # TODO: come up with a better solution for this.  One of the issues here
+    #   is that in Python 3 there is no common base class for unicode strings
+    #   and byte strings, and 2to3 seems to convert all of "str", "unicode",
+    #   and "basestring" to Python 3's "str".
+    if version_info < (3, ):
+         return basestring
+    # The latter evaluates to "bytes" in Python 3 -- even after conversion by 2to3.
+    return (unicode, type(u"a".encode('utf-8')))
+
+
+_STRING_TYPES = _get_string_types()
+
+
+def is_string(obj):
+    """
+    Return whether the given object is a byte string or unicode string.
+
+    This function is provided for compatibility with both Python 2 and 3
+    when using 2to3.
+
+    """
+    return isinstance(obj, _STRING_TYPES)
+
+
+# This function was designed to be portable across Python versions -- both
+# with older versions and with Python 3 after applying 2to3.
+def read(path):
+    """
+    Return the contents of a text file as a byte string.
+
+    """
+    # Opening in binary mode is necessary for compatibility across Python
+    # 2 and 3.  In both Python 2 and 3, open() defaults to opening files in
+    # text mode.  However, in Python 2, open() returns file objects whose
+    # read() method returns byte strings (strings of type `str` in Python 2),
+    # whereas in Python 3, the file object returns unicode strings (strings
+    # of type `str` in Python 3).
+    f = open(path, 'rb')
+    # We avoid use of the with keyword for Python 2.4 support.
+    try:
+        return f.read()
+    finally:
+        f.close()
+
+
+class MissingTags(object):
+
+    """Contains the valid values for Renderer.missing_tags."""
+
+    ignore = 'ignore'
+    strict = 'strict'
+
+
+class PystacheError(Exception):
+    """Base class for Pystache exceptions."""
+    pass
+
+
+class TemplateNotFoundError(PystacheError):
+    """An exception raised when a template is not found."""
+    pass
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/context.py
@@ -0,0 +1,342 @@
+# coding: utf-8
+
+"""
+Exposes a ContextStack class.
+
+The Mustache spec makes a special distinction between two types of context
+stack elements: hashes and objects.  For the purposes of interpreting the
+spec, we define these categories mutually exclusively as follows:
+
+ (1) Hash: an item whose type is a subclass of dict.
+
+ (2) Object: an item that is neither a hash nor an instance of a
+     built-in type.
+
+"""
+
+from pystache.common import PystacheError
+
+
+# This equals '__builtin__' in Python 2 and 'builtins' in Python 3.
+_BUILTIN_MODULE = type(0).__module__
+
+
+# We use this private global variable as a return value to represent a key
+# not being found on lookup.  This lets us distinguish between the case
+# of a key's value being None with the case of a key not being found --
+# without having to rely on exceptions (e.g. KeyError) for flow control.
+#
+# TODO: eliminate the need for a private global variable, e.g. by using the
+#   preferred Python approach of "easier to ask for forgiveness than permission":
+#     http://docs.python.org/glossary.html#term-eafp
+class NotFound(object):
+    pass
+_NOT_FOUND = NotFound()
+
+
+def _get_value(context, key):
+    """
+    Retrieve a key's value from a context item.
+
+    Returns _NOT_FOUND if the key does not exist.
+
+    The ContextStack.get() docstring documents this function's intended behavior.
+
+    """
+    if isinstance(context, dict):
+        # Then we consider the argument a "hash" for the purposes of the spec.
+        #
+        # We do a membership test to avoid using exceptions for flow control
+        # (e.g. catching KeyError).
+        if key in context:
+            return context[key]
+    elif type(context).__module__ != _BUILTIN_MODULE:
+        # Then we consider the argument an "object" for the purposes of
+        # the spec.
+        #
+        # The elif test above lets us avoid treating instances of built-in
+        # types like integers and strings as objects (cf. issue #81).
+        # Instances of user-defined classes on the other hand, for example,
+        # are considered objects by the test above.
+        try:
+            attr = getattr(context, key)
+        except AttributeError:
+            # TODO: distinguish the case of the attribute not existing from
+            #   an AttributeError being raised by the call to the attribute.
+            #   See the following issue for implementation ideas:
+            #     http://bugs.python.org/issue7559
+            pass
+        else:
+            # TODO: consider using EAFP here instead.
+            #   http://docs.python.org/glossary.html#term-eafp
+            if callable(attr):
+                return attr()
+            return attr
+
+    return _NOT_FOUND
+
+
+class KeyNotFoundError(PystacheError):
+
+    """
+    An exception raised when a key is not found in a context stack.
+
+    """
+
+    def __init__(self, key, details):
+        self.key = key
+        self.details = details
+
+    def __str__(self):
+        return "Key %s not found: %s" % (repr(self.key), self.details)
+
+
+class ContextStack(object):
+
+    """
+    Provides dictionary-like access to a stack of zero or more items.
+
+    Instances of this class are meant to act as the rendering context
+    when rendering Mustache templates in accordance with mustache(5)
+    and the Mustache spec.
+
+    Instances encapsulate a private stack of hashes, objects, and built-in
+    type instances.  Querying the stack for the value of a key queries
+    the items in the stack in order from last-added objects to first
+    (last in, first out).
+
+    Caution: this class does not currently support recursive nesting in
+    that items in the stack cannot themselves be ContextStack instances.
+
+    See the docstrings of the methods of this class for more details.
+
+    """
+
+    # We reserve keyword arguments for future options (e.g. a "strict=True"
+    # option for enabling a strict mode).
+    def __init__(self, *items):
+        """
+        Construct an instance, and initialize the private stack.
+
+        The *items arguments are the items with which to populate the
+        initial stack.  Items in the argument list are added to the
+        stack in order so that, in particular, items at the end of
+        the argument list are queried first when querying the stack.
+
+        Caution: items should not themselves be ContextStack instances, as
+        recursive nesting does not behave as one might expect.
+
+        """
+        self._stack = list(items)
+
+    def __repr__(self):
+        """
+        Return a string representation of the instance.
+
+        For example--
+
+        >>> context = ContextStack({'alpha': 'abc'}, {'numeric': 123})
+        >>> repr(context)
+        "ContextStack({'alpha': 'abc'}, {'numeric': 123})"
+
+        """
+        return "%s%s" % (self.__class__.__name__, tuple(self._stack))
+
+    @staticmethod
+    def create(*context, **kwargs):
+        """
+        Build a ContextStack instance from a sequence of context-like items.
+
+        This factory-style method is more general than the ContextStack class's
+        constructor in that, unlike the constructor, the argument list
+        can itself contain ContextStack instances.
+
+        Here is an example illustrating various aspects of this method:
+
+        >>> obj1 = {'animal': 'cat', 'vegetable': 'carrot', 'mineral': 'copper'}
+        >>> obj2 = ContextStack({'vegetable': 'spinach', 'mineral': 'silver'})
+        >>>
+        >>> context = ContextStack.create(obj1, None, obj2, mineral='gold')
+        >>>
+        >>> context.get('animal')
+        'cat'
+        >>> context.get('vegetable')
+        'spinach'
+        >>> context.get('mineral')
+        'gold'
+
+        Arguments:
+
+          *context: zero or more dictionaries, ContextStack instances, or objects
+            with which to populate the initial context stack.  None
+            arguments will be skipped.  Items in the *context list are
+            added to the stack in order so that later items in the argument
+            list take precedence over earlier items.  This behavior is the
+            same as the constructor's.
+
+          **kwargs: additional key-value data to add to the context stack.
+            As these arguments appear after all items in the *context list,
+            in the case of key conflicts these values take precedence over
+            all items in the *context list.  This behavior is the same as
+            the constructor's.
+
+        """
+        items = context
+
+        context = ContextStack()
+
+        for item in items:
+            if item is None:
+                continue
+            if isinstance(item, ContextStack):
+                context._stack.extend(item._stack)
+            else:
+                context.push(item)
+
+        if kwargs:
+            context.push(kwargs)
+
+        return context
+
+    # TODO: add more unit tests for this.
+    # TODO: update the docstring for dotted names.
+    def get(self, name):
+        """
+        Resolve a dotted name against the current context stack.
+
+        This function follows the rules outlined in the section of the
+        spec regarding tag interpolation.  This function returns the value
+        as is and does not coerce the return value to a string.
+
+        Arguments:
+
+          name: a dotted or non-dotted name.
+
+          default: the value to return if name resolution fails at any point.
+            Defaults to the empty string per the Mustache spec.
+
+        This method queries items in the stack in order from last-added
+        objects to first (last in, first out).  The value returned is
+        the value of the key in the first item that contains the key.
+        If the key is not found in any item in the stack, then the default
+        value is returned.  The default value defaults to None.
+
+        In accordance with the spec, this method queries items in the
+        stack for a key differently depending on whether the item is a
+        hash, object, or neither (as defined in the module docstring):
+
+        (1) Hash: if the item is a hash, then the key's value is the
+            dictionary value of the key.  If the dictionary doesn't contain
+            the key, then the key is considered not found.
+
+        (2) Object: if the item is an an object, then the method looks for
+            an attribute with the same name as the key.  If an attribute
+            with that name exists, the value of the attribute is returned.
+            If the attribute is callable, however (i.e. if the attribute
+            is a method), then the attribute is called with no arguments
+            and that value is returned.  If there is no attribute with
+            the same name as the key, then the key is considered not found.
+
+        (3) Neither: if the item is neither a hash nor an object, then
+            the key is considered not found.
+
+        *Caution*:
+
+          Callables are handled differently depending on whether they are
+          dictionary values, as in (1) above, or attributes, as in (2).
+          The former are returned as-is, while the latter are first
+          called and that value returned.
+
+          Here is an example to illustrate:
+
+          >>> def greet():
+          ...     return "Hi Bob!"
+          >>>
+          >>> class Greeter(object):
+          ...     greet = None
+          >>>
+          >>> dct = {'greet': greet}
+          >>> obj = Greeter()
+          >>> obj.greet = greet
+          >>>
+          >>> dct['greet'] is obj.greet
+          True
+          >>> ContextStack(dct).get('greet')  #doctest: +ELLIPSIS
+          <function greet at 0x...>
+          >>> ContextStack(obj).get('greet')
+          'Hi Bob!'
+
+          TODO: explain the rationale for this difference in treatment.
+
+        """
+        if name == '.':
+            try:
+                return self.top()
+            except IndexError:
+                raise KeyNotFoundError(".", "empty context stack")
+
+        parts = name.split('.')
+
+        try:
+            result = self._get_simple(parts[0])
+        except KeyNotFoundError:
+            raise KeyNotFoundError(name, "first part")
+
+        for part in parts[1:]:
+            # The full context stack is not used to resolve the remaining parts.
+            # From the spec--
+            #
+            #   5) If any name parts were retained in step 1, each should be
+            #   resolved against a context stack containing only the result
+            #   from the former resolution.  If any part fails resolution, the
+            #   result should be considered falsey, and should interpolate as
+            #   the empty string.
+            #
+            # TODO: make sure we have a test case for the above point.
+            result = _get_value(result, part)
+            # TODO: consider using EAFP here instead.
+            #   http://docs.python.org/glossary.html#term-eafp
+            if result is _NOT_FOUND:
+                raise KeyNotFoundError(name, "missing %s" % repr(part))
+
+        return result
+
+    def _get_simple(self, name):
+        """
+        Query the stack for a non-dotted name.
+
+        """
+        for item in reversed(self._stack):
+            result = _get_value(item, name)
+            if result is not _NOT_FOUND:
+                return result
+
+        raise KeyNotFoundError(name, "part missing")
+
+    def push(self, item):
+        """
+        Push an item onto the stack.
+
+        """
+        self._stack.append(item)
+
+    def pop(self):
+        """
+        Pop an item off of the stack, and return it.
+
+        """
+        return self._stack.pop()
+
+    def top(self):
+        """
+        Return the item last added to the stack.
+
+        """
+        return self._stack[-1]
+
+    def copy(self):
+        """
+        Return a copy of this instance.
+
+        """
+        return ContextStack(*self._stack)
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/defaults.py
@@ -0,0 +1,65 @@
+# coding: utf-8
+
+"""
+This module provides a central location for defining default behavior.
+
+Throughout the package, these defaults take effect only when the user
+does not otherwise specify a value.
+
+"""
+
+try:
+    # Python 3.2 adds html.escape() and deprecates cgi.escape().
+    from html import escape
+except ImportError:
+    from cgi import escape
+
+import os
+import sys
+
+from pystache.common import MissingTags
+
+
+# How to handle encoding errors when decoding strings from str to unicode.
+#
+# This value is passed as the "errors" argument to Python's built-in
+# unicode() function:
+#
+#   http://docs.python.org/library/functions.html#unicode
+#
+DECODE_ERRORS = 'strict'
+
+# The name of the encoding to use when converting to unicode any strings of
+# type str encountered during the rendering process.
+STRING_ENCODING = sys.getdefaultencoding()
+
+# The name of the encoding to use when converting file contents to unicode.
+# This default takes precedence over the STRING_ENCODING default for
+# strings that arise from files.
+FILE_ENCODING = sys.getdefaultencoding()
+
+# The delimiters to start with when parsing.
+DELIMITERS = (u'{{', u'}}')
+
+# How to handle missing tags when rendering a template.
+MISSING_TAGS = MissingTags.ignore
+
+# The starting list of directories in which to search for templates when
+# loading a template by file name.
+SEARCH_DIRS = [os.curdir]  # i.e. ['.']
+
+# The escape function to apply to strings that require escaping when
+# rendering templates (e.g. for tags enclosed in double braces).
+# Only unicode strings will be passed to this function.
+#
+# The quote=True argument causes double but not single quotes to be escaped
+# in Python 3.1 and earlier, and both double and single quotes to be
+# escaped in Python 3.2 and later:
+#
+#   http://docs.python.org/library/cgi.html#cgi.escape
+#   http://docs.python.org/dev/library/html.html#html.escape
+#
+TAG_ESCAPE = lambda u: escape(u, quote=True)
+
+# The default template extension, without the leading dot.
+TEMPLATE_EXTENSION = 'mustache'
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/init.py
@@ -0,0 +1,19 @@
+# encoding: utf-8
+
+"""
+This module contains the initialization logic called by __init__.py.
+
+"""
+
+from pystache.parser import parse
+from pystache.renderer import Renderer
+from pystache.template_spec import TemplateSpec
+
+
+def render(template, context=None, **kwargs):
+    """
+    Return the given template string rendered using the given context.
+
+    """
+    renderer = Renderer()
+    return renderer.render(template, context, **kwargs)
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/loader.py
@@ -0,0 +1,170 @@
+# coding: utf-8
+
+"""
+This module provides a Loader class for locating and reading templates.
+
+"""
+
+import os
+import sys
+
+from pystache import common
+from pystache import defaults
+from pystache.locator import Locator
+
+
+# We make a function so that the current defaults take effect.
+# TODO: revisit whether this is necessary.
+
+def _make_to_unicode():
+    def to_unicode(s, encoding=None):
+        """
+        Raises a TypeError exception if the given string is already unicode.
+
+        """
+        if encoding is None:
+            encoding = defaults.STRING_ENCODING
+        return unicode(s, encoding, defaults.DECODE_ERRORS)
+    return to_unicode
+
+
+class Loader(object):
+
+    """
+    Loads the template associated to a name or user-defined object.
+
+    All load_*() methods return the template as a unicode string.
+
+    """
+
+    def __init__(self, file_encoding=None, extension=None, to_unicode=None,
+                 search_dirs=None):
+        """
+        Construct a template loader instance.
+
+        Arguments:
+
+          extension: the template file extension, without the leading dot.
+            Pass False for no extension (e.g. to use extensionless template
+            files).  Defaults to the package default.
+
+          file_encoding: the name of the encoding to use when converting file
+            contents to unicode.  Defaults to the package default.
+
+          search_dirs: the list of directories in which to search when loading
+            a template by name or file name.  Defaults to the package default.
+
+          to_unicode: the function to use when converting strings of type
+            str to unicode.  The function should have the signature:
+
+              to_unicode(s, encoding=None)
+
+            It should accept a string of type str and an optional encoding
+            name and return a string of type unicode.  Defaults to calling
+            Python's built-in function unicode() using the package string
+            encoding and decode errors defaults.
+
+        """
+        if extension is None:
+            extension = defaults.TEMPLATE_EXTENSION
+
+        if file_encoding is None:
+            file_encoding = defaults.FILE_ENCODING
+
+        if search_dirs is None:
+            search_dirs = defaults.SEARCH_DIRS
+
+        if to_unicode is None:
+            to_unicode = _make_to_unicode()
+
+        self.extension = extension
+        self.file_encoding = file_encoding
+        # TODO: unit test setting this attribute.
+        self.search_dirs = search_dirs
+        self.to_unicode = to_unicode
+
+    def _make_locator(self):
+        return Locator(extension=self.extension)
+
+    def unicode(self, s, encoding=None):
+        """
+        Convert a string to unicode using the given encoding, and return it.
+
+        This function uses the underlying to_unicode attribute.
+
+        Arguments:
+
+          s: a basestring instance to convert to unicode.  Unlike Python's
+            built-in unicode() function, it is okay to pass unicode strings
+            to this function.  (Passing a unicode string to Python's unicode()
+            with the encoding argument throws the error, "TypeError: decoding
+            Unicode is not supported.")
+
+          encoding: the encoding to pass to the to_unicode attribute.
+            Defaults to None.
+
+        """
+        if isinstance(s, unicode):
+            return unicode(s)
+
+        return self.to_unicode(s, encoding)
+
+    def read(self, path, encoding=None):
+        """
+        Read the template at the given path, and return it as a unicode string.
+
+        """
+        b = common.read(path)
+
+        if encoding is None:
+            encoding = self.file_encoding
+
+        return self.unicode(b, encoding)
+
+    def load_file(self, file_name):
+        """
+        Find and return the template with the given file name.
+
+        Arguments:
+
+          file_name: the file name of the template.
+
+        """
+        locator = self._make_locator()
+
+        path = locator.find_file(file_name, self.search_dirs)
+
+        return self.read(path)
+
+    def load_name(self, name):
+        """
+        Find and return the template with the given template name.
+
+        Arguments:
+
+          name: the name of the template.
+
+        """
+        locator = self._make_locator()
+
+        path = locator.find_name(name, self.search_dirs)
+
+        return self.read(path)
+
+    # TODO: unit-test this method.
+    def load_object(self, obj):
+        """
+        Find and return the template associated to the given object.
+
+        Arguments:
+
+          obj: an instance of a user-defined class.
+
+          search_dirs: the list of directories in which to search.
+
+        """
+        locator = self._make_locator()
+
+        path = locator.find_object(obj, self.search_dirs)
+
+        return self.read(path)
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/locator.py
@@ -0,0 +1,171 @@
+# coding: utf-8
+
+"""
+This module provides a Locator class for finding template files.
+
+"""
+
+import os
+import re
+import sys
+
+from pystache.common import TemplateNotFoundError
+from pystache import defaults
+
+
+class Locator(object):
+
+    def __init__(self, extension=None):
+        """
+        Construct a template locator.
+
+        Arguments:
+
+          extension: the template file extension, without the leading dot.
+            Pass False for no extension (e.g. to use extensionless template
+            files).  Defaults to the package default.
+
+        """
+        if extension is None:
+            extension = defaults.TEMPLATE_EXTENSION
+
+        self.template_extension = extension
+
+    def get_object_directory(self, obj):
+        """
+        Return the directory containing an object's defining class.
+
+        Returns None if there is no such directory, for example if the
+        class was defined in an interactive Python session, or in a
+        doctest that appears in a text file (rather than a Python file).
+
+        """
+        if not hasattr(obj, '__module__'):
+            return None
+
+        module = sys.modules[obj.__module__]
+
+        if not hasattr(module, '__file__'):
+            # TODO: add a unit test for this case.
+            return None
+
+        path = module.__file__
+
+        return os.path.dirname(path)
+
+    def make_template_name(self, obj):
+        """
+        Return the canonical template name for an object instance.
+
+        This method converts Python-style class names (PEP 8's recommended
+        CamelCase, aka CapWords) to lower_case_with_underscords.  Here
+        is an example with code:
+
+        >>> class HelloWorld(object):
+        ...     pass
+        >>> hi = HelloWorld()
+        >>>
+        >>> locator = Locator()
+        >>> locator.make_template_name(hi)
+        'hello_world'
+
+        """
+        template_name = obj.__class__.__name__
+
+        def repl(match):
+            return '_' + match.group(0).lower()
+
+        return re.sub('[A-Z]', repl, template_name)[1:]
+
+    def make_file_name(self, template_name, template_extension=None):
+        """
+        Generate and return the file name for the given template name.
+
+        Arguments:
+
+          template_extension: defaults to the instance's extension.
+
+        """
+        file_name = template_name
+
+        if template_extension is None:
+            template_extension = self.template_extension
+
+        if template_extension is not False:
+            file_name += os.path.extsep + template_extension
+
+        return file_name
+
+    def _find_path(self, search_dirs, file_name):
+        """
+        Search for the given file, and return the path.
+
+        Returns None if the file is not found.
+
+        """
+        for dir_path in search_dirs:
+            file_path = os.path.join(dir_path, file_name)
+            if os.path.exists(file_path):
+                return file_path
+
+        return None
+
+    def _find_path_required(self, search_dirs, file_name):
+        """
+        Return the path to a template with the given file name.
+
+        """
+        path = self._find_path(search_dirs, file_name)
+
+        if path is None:
+            raise TemplateNotFoundError('File %s not found in dirs: %s' %
+                                        (repr(file_name), repr(search_dirs)))
+
+        return path
+
+    def find_file(self, file_name, search_dirs):
+        """
+        Return the path to a template with the given file name.
+
+        Arguments:
+
+          file_name: the file name of the template.
+
+          search_dirs: the list of directories in which to search.
+
+        """
+        return self._find_path_required(search_dirs, file_name)
+
+    def find_name(self, template_name, search_dirs):
+        """
+        Return the path to a template with the given name.
+
+        Arguments:
+
+          template_name: the name of the template.
+
+          search_dirs: the list of directories in which to search.
+
+        """
+        file_name = self.make_file_name(template_name)
+
+        return self._find_path_required(search_dirs, file_name)
+
+    def find_object(self, obj, search_dirs, file_name=None):
+        """
+        Return the path to a template associated with the given object.
+
+        """
+        if file_name is None:
+            # TODO: should we define a make_file_name() method?
+            template_name = self.make_template_name(obj)
+            file_name = self.make_file_name(template_name)
+
+        dir_path = self.get_object_directory(obj)
+
+        if dir_path is not None:
+            search_dirs = [dir_path] + search_dirs
+
+        path = self._find_path_required(search_dirs, file_name)
+
+        return path
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/parsed.py
@@ -0,0 +1,50 @@
+# coding: utf-8
+
+"""
+Exposes a class that represents a parsed (or compiled) template.
+
+"""
+
+
+class ParsedTemplate(object):
+
+    """
+    Represents a parsed or compiled template.
+
+    An instance wraps a list of unicode strings and node objects.  A node
+    object must have a `render(engine, stack)` method that accepts a
+    RenderEngine instance and a ContextStack instance and returns a unicode
+    string.
+
+    """
+
+    def __init__(self):
+        self._parse_tree = []
+
+    def __repr__(self):
+        return repr(self._parse_tree)
+
+    def add(self, node):
+        """
+        Arguments:
+
+          node: a unicode string or node object instance.  See the class
+            docstring for information.
+
+        """
+        self._parse_tree.append(node)
+
+    def render(self, engine, context):
+        """
+        Returns: a string of type unicode.
+
+        """
+        # We avoid use of the ternary operator for Python 2.4 support.
+        def get_unicode(node):
+            if type(node) is unicode:
+                return node
+            return node.render(engine, context)
+        parts = map(get_unicode, self._parse_tree)
+        s = ''.join(parts)
+
+        return unicode(s)
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/parser.py
@@ -0,0 +1,378 @@
+# coding: utf-8
+
+"""
+Exposes a parse() function to parse template strings.
+
+"""
+
+import re
+
+from pystache import defaults
+from pystache.parsed import ParsedTemplate
+
+
+END_OF_LINE_CHARACTERS = [u'\r', u'\n']
+NON_BLANK_RE = re.compile(ur'^(.)', re.M)
+
+
+# TODO: add some unit tests for this.
+# TODO: add a test case that checks for spurious spaces.
+# TODO: add test cases for delimiters.
+def parse(template, delimiters=None):
+    """
+    Parse a unicode template string and return a ParsedTemplate instance.
+
+    Arguments:
+
+      template: a unicode template string.
+
+      delimiters: a 2-tuple of delimiters.  Defaults to the package default.
+
+    Examples:
+
+    >>> parsed = parse(u"Hey {{#who}}{{name}}!{{/who}}")
+    >>> print str(parsed).replace('u', '')  # This is a hack to get the test to pass both in Python 2 and 3.
+    ['Hey ', _SectionNode(key='who', index_begin=12, index_end=21, parsed=[_EscapeNode(key='name'), '!'])]
+
+    """
+    if type(template) is not unicode:
+        raise Exception("Template is not unicode: %s" % type(template))
+    parser = _Parser(delimiters)
+    return parser.parse(template)
+
+
+def _compile_template_re(delimiters):
+    """
+    Return a regular expression object (re.RegexObject) instance.
+
+    """
+    # The possible tag type characters following the opening tag,
+    # excluding "=" and "{".
+    tag_types = "!>&/#^"
+
+    # TODO: are we following this in the spec?
+    #
+    #   The tag's content MUST be a non-whitespace character sequence
+    #   NOT containing the current closing delimiter.
+    #
+    tag = r"""
+        (?P<whitespace>[\ \t]*)
+        %(otag)s \s*
+        (?:
+          (?P<change>=) \s* (?P<delims>.+?)   \s* = |
+          (?P<raw>{)    \s* (?P<raw_name>.+?) \s* } |
+          (?P<tag>[%(tag_types)s]?)  \s* (?P<tag_key>[\s\S]+?)
+        )
+        \s* %(ctag)s
+    """ % {'tag_types': tag_types, 'otag': re.escape(delimiters[0]), 'ctag': re.escape(delimiters[1])}
+
+    return re.compile(tag, re.VERBOSE)
+
+
+class ParsingError(Exception):
+
+    pass
+
+
+## Node types
+
+def _format(obj, exclude=None):
+    if exclude is None:
+        exclude = []
+    exclude.append('key')
+    attrs = obj.__dict__
+    names = list(set(attrs.keys()) - set(exclude))
+    names.sort()
+    names.insert(0, 'key')
+    args = ["%s=%s" % (name, repr(attrs[name])) for name in names]
+    return "%s(%s)" % (obj.__class__.__name__, ", ".join(args))
+
+
+class _CommentNode(object):
+
+    def __repr__(self):
+        return _format(self)
+
+    def render(self, engine, context):
+        return u''
+
+
+class _ChangeNode(object):
+
+    def __init__(self, delimiters):
+        self.delimiters = delimiters
+
+    def __repr__(self):
+        return _format(self)
+
+    def render(self, engine, context):
+        return u''
+
+
+class _EscapeNode(object):
+
+    def __init__(self, key):
+        self.key = key
+
+    def __repr__(self):
+        return _format(self)
+
+    def render(self, engine, context):
+        s = engine.fetch_string(context, self.key)
+        return engine.escape(s)
+
+
+class _LiteralNode(object):
+
+    def __init__(self, key):
+        self.key = key
+
+    def __repr__(self):
+        return _format(self)
+
+    def render(self, engine, context):
+        s = engine.fetch_string(context, self.key)
+        return engine.literal(s)
+
+
+class _PartialNode(object):
+
+    def __init__(self, key, indent):
+        self.key = key
+        self.indent = indent
+
+    def __repr__(self):
+        return _format(self)
+
+    def render(self, engine, context):
+        template = engine.resolve_partial(self.key)
+        # Indent before rendering.
+        template = re.sub(NON_BLANK_RE, self.indent + ur'\1', template)
+
+        return engine.render(template, context)
+
+
+class _InvertedNode(object):
+
+    def __init__(self, key, parsed_section):
+        self.key = key
+        self.parsed_section = parsed_section
+
+    def __repr__(self):
+        return _format(self)
+
+    def render(self, engine, context):
+        # TODO: is there a bug because we are not using the same
+        #   logic as in fetch_string()?
+        data = engine.resolve_context(context, self.key)
+        # Note that lambdas are considered truthy for inverted sections
+        # per the spec.
+        if data:
+            return u''
+        return self.parsed_section.render(engine, context)
+
+
+class _SectionNode(object):
+
+    # TODO: the template_ and parsed_template_ arguments don't both seem
+    # to be necessary.  Can we remove one of them?  For example, if
+    # callable(data) is True, then the initial parsed_template isn't used.
+    def __init__(self, key, parsed, delimiters, template, index_begin, index_end):
+        self.delimiters = delimiters
+        self.key = key
+        self.parsed = parsed
+        self.template = template
+        self.index_begin = index_begin
+        self.index_end = index_end
+
+    def __repr__(self):
+        return _format(self, exclude=['delimiters', 'template'])
+
+    def render(self, engine, context):
+        values = engine.fetch_section_data(context, self.key)
+
+        parts = []
+        for val in values:
+            if callable(val):
+                # Lambdas special case section rendering and bypass pushing
+                # the data value onto the context stack.  From the spec--
+                #
+                #   When used as the data value for a Section tag, the
+                #   lambda MUST be treatable as an arity 1 function, and
+                #   invoked as such (passing a String containing the
+                #   unprocessed section contents).  The returned value
+                #   MUST be rendered against the current delimiters, then
+                #   interpolated in place of the section.
+                #
+                #  Also see--
+                #
+                #   https://github.com/defunkt/pystache/issues/113
+                #
+                # TODO: should we check the arity?
+                val = val(self.template[self.index_begin:self.index_end])
+                val = engine._render_value(val, context, delimiters=self.delimiters)
+                parts.append(val)
+                continue
+
+            context.push(val)
+            parts.append(self.parsed.render(engine, context))
+            context.pop()
+
+        return unicode(''.join(parts))
+
+
+class _Parser(object):
+
+    _delimiters = None
+    _template_re = None
+
+    def __init__(self, delimiters=None):
+        if delimiters is None:
+            delimiters = defaults.DELIMITERS
+
+        self._delimiters = delimiters
+
+    def _compile_delimiters(self):
+        self._template_re = _compile_template_re(self._delimiters)
+
+    def _change_delimiters(self, delimiters):
+        self._delimiters = delimiters
+        self._compile_delimiters()
+
+    def parse(self, template):
+        """
+        Parse a template string starting at some index.
+
+        This method uses the current tag delimiter.
+
+        Arguments:
+
+          template: a unicode string that is the template to parse.
+
+          index: the index at which to start parsing.
+
+        Returns:
+
+          a ParsedTemplate instance.
+
+        """
+        self._compile_delimiters()
+
+        start_index = 0
+        content_end_index, parsed_section, section_key = None, None, None
+        parsed_template = ParsedTemplate()
+
+        states = []
+
+        while True:
+            match = self._template_re.search(template, start_index)
+
+            if match is None:
+                break
+
+            match_index = match.start()
+            end_index = match.end()
+
+            matches = match.groupdict()
+
+            # Normalize the matches dictionary.
+            if matches['change'] is not None:
+                matches.update(tag='=', tag_key=matches['delims'])
+            elif matches['raw'] is not None:
+                matches.update(tag='&', tag_key=matches['raw_name'])
+
+            tag_type = matches['tag']
+            tag_key = matches['tag_key']
+            leading_whitespace = matches['whitespace']
+
+            # Standalone (non-interpolation) tags consume the entire line,
+            # both leading whitespace and trailing newline.
+            did_tag_begin_line = match_index == 0 or template[match_index - 1] in END_OF_LINE_CHARACTERS
+            did_tag_end_line = end_index == len(template) or template[end_index] in END_OF_LINE_CHARACTERS
+            is_tag_interpolating = tag_type in ['', '&']
+
+            if did_tag_begin_line and did_tag_end_line and not is_tag_interpolating:
+                if end_index < len(template):
+                    end_index += template[end_index] == '\r' and 1 or 0
+                if end_index < len(template):
+                    end_index += template[end_index] == '\n' and 1 or 0
+            elif leading_whitespace:
+                match_index += len(leading_whitespace)
+                leading_whitespace = ''
+
+            # Avoid adding spurious empty strings to the parse tree.
+            if start_index != match_index:
+                parsed_template.add(template[start_index:match_index])
+
+            start_index = end_index
+
+            if tag_type in ('#', '^'):
+                # Cache current state.
+                state = (tag_type, end_index, section_key, parsed_template)
+                states.append(state)
+
+                # Initialize new state
+                section_key, parsed_template = tag_key, ParsedTemplate()
+                continue
+
+            if tag_type == '/':
+                if tag_key != section_key:
+                    raise ParsingError("Section end tag mismatch: %s != %s" % (tag_key, section_key))
+
+                # Restore previous state with newly found section data.
+                parsed_section = parsed_template
+
+                (tag_type, section_start_index, section_key, parsed_template) = states.pop()
+                node = self._make_section_node(template, tag_type, tag_key, parsed_section,
+                                               section_start_index, match_index)
+
+            else:
+                node = self._make_interpolation_node(tag_type, tag_key, leading_whitespace)
+
+            parsed_template.add(node)
+
+        # Avoid adding spurious empty strings to the parse tree.
+        if start_index != len(template):
+            parsed_template.add(template[start_index:])
+
+        return parsed_template
+
+    def _make_interpolation_node(self, tag_type, tag_key, leading_whitespace):
+        """
+        Create and return a non-section node for the parse tree.
+
+        """
+        # TODO: switch to using a dictionary instead of a bunch of ifs and elifs.
+        if tag_type == '!':
+            return _CommentNode()
+
+        if tag_type == '=':
+            delimiters = tag_key.split()
+            self._change_delimiters(delimiters)
+            return _ChangeNode(delimiters)
+
+        if tag_type == '':
+            return _EscapeNode(tag_key)
+
+        if tag_type == '&':
+            return _LiteralNode(tag_key)
+
+        if tag_type == '>':
+            return _PartialNode(tag_key, leading_whitespace)
+
+        raise Exception("Invalid symbol for interpolation tag: %s" % repr(tag_type))
+
+    def _make_section_node(self, template, tag_type, tag_key, parsed_section,
+                           section_start_index, section_end_index):
+        """
+        Create and return a section node for the parse tree.
+
+        """
+        if tag_type == '#':
+            return _SectionNode(tag_key, parsed_section, self._delimiters,
+                               template, section_start_index, section_end_index)
+
+        if tag_type == '^':
+            return _InvertedNode(tag_key, parsed_section)
+
+        raise Exception("Invalid symbol for section tag: %s" % repr(tag_type))
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/renderengine.py
@@ -0,0 +1,181 @@
+# coding: utf-8
+
+"""
+Defines a class responsible for rendering logic.
+
+"""
+
+import re
+
+from pystache.common import is_string
+from pystache.parser import parse
+
+
+def context_get(stack, name):
+    """
+    Find and return a name from a ContextStack instance.
+
+    """
+    return stack.get(name)
+
+
+class RenderEngine(object):
+
+    """
+    Provides a render() method.
+
+    This class is meant only for internal use.
+
+    As a rule, the code in this class operates on unicode strings where
+    possible rather than, say, strings of type str or markupsafe.Markup.
+    This means that strings obtained from "external" sources like partials
+    and variable tag values are immediately converted to unicode (or
+    escaped and converted to unicode) before being operated on further.
+    This makes maintaining, reasoning about, and testing the correctness
+    of the code much simpler.  In particular, it keeps the implementation
+    of this class independent of the API details of one (or possibly more)
+    unicode subclasses (e.g. markupsafe.Markup).
+
+    """
+
+    # TODO: it would probably be better for the constructor to accept
+    #   and set as an attribute a single RenderResolver instance
+    #   that encapsulates the customizable aspects of converting
+    #   strings and resolving partials and names from context.
+    def __init__(self, literal=None, escape=None, resolve_context=None,
+                 resolve_partial=None, to_str=None):
+        """
+        Arguments:
+
+          literal: the function used to convert unescaped variable tag
+            values to unicode, e.g. the value corresponding to a tag
+            "{{{name}}}".  The function should accept a string of type
+            str or unicode (or a subclass) and return a string of type
+            unicode (but not a proper subclass of unicode).
+                This class will only pass basestring instances to this
+            function.  For example, it will call str() on integer variable
+            values prior to passing them to this function.
+
+          escape: the function used to escape and convert variable tag
+            values to unicode, e.g. the value corresponding to a tag
+            "{{name}}".  The function should obey the same properties
+            described above for the "literal" function argument.
+                This function should take care to convert any str
+            arguments to unicode just as the literal function should, as
+            this class will not pass tag values to literal prior to passing
+            them to this function.  This allows for more flexibility,
+            for example using a custom escape function that handles
+            incoming strings of type markupsafe.Markup differently
+            from plain unicode strings.
+
+          resolve_context: the function to call to resolve a name against
+            a context stack.  The function should accept two positional
+            arguments: a ContextStack instance and a name to resolve.
+
+          resolve_partial: the function to call when loading a partial.
+            The function should accept a template name string and return a
+            template string of type unicode (not a subclass).
+
+          to_str: a function that accepts an object and returns a string (e.g.
+            the built-in function str).  This function is used for string
+            coercion whenever a string is required (e.g. for converting None
+            or 0 to a string).
+
+        """
+        self.escape = escape
+        self.literal = literal
+        self.resolve_context = resolve_context
+        self.resolve_partial = resolve_partial
+        self.to_str = to_str
+
+    # TODO: Rename context to stack throughout this module.
+
+    # From the spec:
+    #
+    #   When used as the data value for an Interpolation tag, the lambda
+    #   MUST be treatable as an arity 0 function, and invoked as such.
+    #   The returned value MUST be rendered against the default delimiters,
+    #   then interpolated in place of the lambda.
+    #
+    def fetch_string(self, context, name):
+        """
+        Get a value from the given context as a basestring instance.
+
+        """
+        val = self.resolve_context(context, name)
+
+        if callable(val):
+            # Return because _render_value() is already a string.
+            return self._render_value(val(), context)
+
+        if not is_string(val):
+            return self.to_str(val)
+
+        return val
+
+    def fetch_section_data(self, context, name):
+        """
+        Fetch the value of a section as a list.
+
+        """
+        data = self.resolve_context(context, name)
+
+        # From the spec:
+        #
+        #   If the data is not of a list type, it is coerced into a list
+        #   as follows: if the data is truthy (e.g. `!!data == true`),
+        #   use a single-element list containing the data, otherwise use
+        #   an empty list.
+        #
+        if not data:
+            data = []
+        else:
+            # The least brittle way to determine whether something
+            # supports iteration is by trying to call iter() on it:
+            #
+            #   http://docs.python.org/library/functions.html#iter
+            #
+            # It is not sufficient, for example, to check whether the item
+            # implements __iter__ () (the iteration protocol).  There is
+            # also __getitem__() (the sequence protocol).  In Python 2,
+            # strings do not implement __iter__(), but in Python 3 they do.
+            try:
+                iter(data)
+            except TypeError:
+                # Then the value does not support iteration.
+                data = [data]
+            else:
+                if is_string(data) or isinstance(data, dict):
+                    # Do not treat strings and dicts (which are iterable) as lists.
+                    data = [data]
+                # Otherwise, treat the value as a list.
+
+        return data
+
+    def _render_value(self, val, context, delimiters=None):
+        """
+        Render an arbitrary value.
+
+        """
+        if not is_string(val):
+            # In case the template is an integer, for example.
+            val = self.to_str(val)
+        if type(val) is not unicode:
+            val = self.literal(val)
+        return self.render(val, context, delimiters)
+
+    def render(self, template, context_stack, delimiters=None):
+        """
+        Render a unicode template string, and return as unicode.
+
+        Arguments:
+
+          template: a template string of type unicode (but not a proper
+            subclass of unicode).
+
+          context_stack: a ContextStack instance.
+
+        """
+        parsed_template = parse(template, delimiters)
+
+        return parsed_template.render(self, context_stack)
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/renderer.py
@@ -0,0 +1,460 @@
+# coding: utf-8
+
+"""
+This module provides a Renderer class to render templates.
+
+"""
+
+import sys
+
+from pystache import defaults
+from pystache.common import TemplateNotFoundError, MissingTags, is_string
+from pystache.context import ContextStack, KeyNotFoundError
+from pystache.loader import Loader
+from pystache.parsed import ParsedTemplate
+from pystache.renderengine import context_get, RenderEngine
+from pystache.specloader import SpecLoader
+from pystache.template_spec import TemplateSpec
+
+
+class Renderer(object):
+
+    """
+    A class for rendering mustache templates.
+
+    This class supports several rendering options which are described in
+    the constructor's docstring.  Other behavior can be customized by
+    subclassing this class.
+
+    For example, one can pass a string-string dictionary to the constructor
+    to bypass loading partials from the file system:
+
+    >>> partials = {'partial': 'Hello, {{thing}}!'}
+    >>> renderer = Renderer(partials=partials)
+    >>> # We apply print to make the test work in Python 3 after 2to3.
+    >>> print renderer.render('{{>partial}}', {'thing': 'world'})
+    Hello, world!
+
+    To customize string coercion (e.g. to render False values as ''), one can
+    subclass this class.  For example:
+
+        class MyRenderer(Renderer):
+            def str_coerce(self, val):
+                if not val:
+                    return ''
+                else:
+                    return str(val)
+
+    """
+
+    def __init__(self, file_encoding=None, string_encoding=None,
+                 decode_errors=None, search_dirs=None, file_extension=None,
+                 escape=None, partials=None, missing_tags=None):
+        """
+        Construct an instance.
+
+        Arguments:
+
+          file_encoding: the name of the encoding to use by default when
+            reading template files.  All templates are converted to unicode
+            prior to parsing.  Defaults to the package default.
+
+          string_encoding: the name of the encoding to use when converting
+            to unicode any byte strings (type str in Python 2) encountered
+            during the rendering process.  This name will be passed as the
+            encoding argument to the built-in function unicode().
+            Defaults to the package default.
+
+          decode_errors: the string to pass as the errors argument to the
+            built-in function unicode() when converting byte strings to
+            unicode.  Defaults to the package default.
+
+          search_dirs: the list of directories in which to search when
+            loading a template by name or file name.  If given a string,
+            the method interprets the string as a single directory.
+            Defaults to the package default.
+
+          file_extension: the template file extension.  Pass False for no
+            extension (i.e. to use extensionless template files).
+            Defaults to the package default.
+
+          partials: an object (e.g. a dictionary) for custom partial loading
+            during the rendering process.
+                The object should have a get() method that accepts a string
+            and returns the corresponding template as a string, preferably
+            as a unicode string.  If there is no template with that name,
+            the get() method should either return None (as dict.get() does)
+            or raise an exception.
+                If this argument is None, the rendering process will use
+            the normal procedure of locating and reading templates from
+            the file system -- using relevant instance attributes like
+            search_dirs, file_encoding, etc.
+
+          escape: the function used to escape variable tag values when
+            rendering a template.  The function should accept a unicode
+            string (or subclass of unicode) and return an escaped string
+            that is again unicode (or a subclass of unicode).
+                This function need not handle strings of type `str` because
+            this class will only pass it unicode strings.  The constructor
+            assigns this function to the constructed instance's escape()
+            method.
+                To disable escaping entirely, one can pass `lambda u: u`
+            as the escape function, for example.  One may also wish to
+            consider using markupsafe's escape function: markupsafe.escape().
+            This argument defaults to the package default.
+
+          missing_tags: a string specifying how to handle missing tags.
+            If 'strict', an error is raised on a missing tag.  If 'ignore',
+            the value of the tag is the empty string.  Defaults to the
+            package default.
+
+        """
+        if decode_errors is None:
+            decode_errors = defaults.DECODE_ERRORS
+
+        if escape is None:
+            escape = defaults.TAG_ESCAPE
+
+        if file_encoding is None:
+            file_encoding = defaults.FILE_ENCODING
+
+        if file_extension is None:
+            file_extension = defaults.TEMPLATE_EXTENSION
+
+        if missing_tags is None:
+            missing_tags = defaults.MISSING_TAGS
+
+        if search_dirs is None:
+            search_dirs = defaults.SEARCH_DIRS
+
+        if string_encoding is None:
+            string_encoding = defaults.STRING_ENCODING
+
+        if isinstance(search_dirs, basestring):
+            search_dirs = [search_dirs]
+
+        self._context = None
+        self.decode_errors = decode_errors
+        self.escape = escape
+        self.file_encoding = file_encoding
+        self.file_extension = file_extension
+        self.missing_tags = missing_tags
+        self.partials = partials
+        self.search_dirs = search_dirs
+        self.string_encoding = string_encoding
+
+    # This is an experimental way of giving views access to the current context.
+    # TODO: consider another approach of not giving access via a property,
+    #   but instead letting the caller pass the initial context to the
+    #   main render() method by reference.  This approach would probably
+    #   be less likely to be misused.
+    @property
+    def context(self):
+        """
+        Return the current rendering context [experimental].
+
+        """
+        return self._context
+
+    # We could not choose str() as the name because 2to3 renames the unicode()
+    # method of this class to str().
+    def str_coerce(self, val):
+        """
+        Coerce a non-string value to a string.
+
+        This method is called whenever a non-string is encountered during the
+        rendering process when a string is needed (e.g. if a context value
+        for string interpolation is not a string).  To customize string
+        coercion, you can override this method.
+
+        """
+        return str(val)
+
+    def _to_unicode_soft(self, s):
+        """
+        Convert a basestring to unicode, preserving any unicode subclass.
+
+        """
+        # We type-check to avoid "TypeError: decoding Unicode is not supported".
+        # We avoid the Python ternary operator for Python 2.4 support.
+        if isinstance(s, unicode):
+            return s
+        return self.unicode(s)
+
+    def _to_unicode_hard(self, s):
+        """
+        Convert a basestring to a string with type unicode (not subclass).
+
+        """
+        return unicode(self._to_unicode_soft(s))
+
+    def _escape_to_unicode(self, s):
+        """
+        Convert a basestring to unicode (preserving any unicode subclass), and escape it.
+
+        Returns a unicode string (not subclass).
+
+        """
+        return unicode(self.escape(self._to_unicode_soft(s)))
+
+    def unicode(self, b, encoding=None):
+        """
+        Convert a byte string to unicode, using string_encoding and decode_errors.
+
+        Arguments:
+
+          b: a byte string.
+
+          encoding: the name of an encoding.  Defaults to the string_encoding
+            attribute for this instance.
+
+        Raises:
+
+          TypeError: Because this method calls Python's built-in unicode()
+            function, this method raises the following exception if the
+            given string is already unicode:
+
+              TypeError: decoding Unicode is not supported
+
+        """
+        if encoding is None:
+            encoding = self.string_encoding
+
+        # TODO: Wrap UnicodeDecodeErrors with a message about setting
+        # the string_encoding and decode_errors attributes.
+        return unicode(b, encoding, self.decode_errors)
+
+    def _make_loader(self):
+        """
+        Create a Loader instance using current attributes.
+
+        """
+        return Loader(file_encoding=self.file_encoding, extension=self.file_extension,
+                      to_unicode=self.unicode, search_dirs=self.search_dirs)
+
+    def _make_load_template(self):
+        """
+        Return a function that loads a template by name.
+
+        """
+        loader = self._make_loader()
+
+        def load_template(template_name):
+            return loader.load_name(template_name)
+
+        return load_template
+
+    def _make_load_partial(self):
+        """
+        Return a function that loads a partial by name.
+
+        """
+        if self.partials is None:
+            return self._make_load_template()
+
+        # Otherwise, create a function from the custom partial loader.
+        partials = self.partials
+
+        def load_partial(name):
+            # TODO: consider using EAFP here instead.
+            #     http://docs.python.org/glossary.html#term-eafp
+            #   This would mean requiring that the custom partial loader
+            #   raise a KeyError on name not found.
+            template = partials.get(name)
+            if template is None:
+                raise TemplateNotFoundError("Name %s not found in partials: %s" %
+                                            (repr(name), type(partials)))
+
+            # RenderEngine requires that the return value be unicode.
+            return self._to_unicode_hard(template)
+
+        return load_partial
+
+    def _is_missing_tags_strict(self):
+        """
+        Return whether missing_tags is set to strict.
+
+        """
+        val = self.missing_tags
+
+        if val == MissingTags.strict:
+            return True
+        elif val == MissingTags.ignore:
+            return False
+
+        raise Exception("Unsupported 'missing_tags' value: %s" % repr(val))
+
+    def _make_resolve_partial(self):
+        """
+        Return the resolve_partial function to pass to RenderEngine.__init__().
+
+        """
+        load_partial = self._make_load_partial()
+
+        if self._is_missing_tags_strict():
+            return load_partial
+        # Otherwise, ignore missing tags.
+
+        def resolve_partial(name):
+            try:
+                return load_partial(name)
+            except TemplateNotFoundError:
+                return u''
+
+        return resolve_partial
+
+    def _make_resolve_context(self):
+        """
+        Return the resolve_context function to pass to RenderEngine.__init__().
+
+        """
+        if self._is_missing_tags_strict():
+            return context_get
+        # Otherwise, ignore missing tags.
+
+        def resolve_context(stack, name):
+            try:
+                return context_get(stack, name)
+            except KeyNotFoundError:
+                return u''
+
+        return resolve_context
+
+    def _make_render_engine(self):
+        """
+        Return a RenderEngine instance for rendering.
+
+        """
+        resolve_context = self._make_resolve_context()
+        resolve_partial = self._make_resolve_partial()
+
+        engine = RenderEngine(literal=self._to_unicode_hard,
+                              escape=self._escape_to_unicode,
+                              resolve_context=resolve_context,
+                              resolve_partial=resolve_partial,
+                              to_str=self.str_coerce)
+        return engine
+
+    # TODO: add unit tests for this method.
+    def load_template(self, template_name):
+        """
+        Load a template by name from the file system.
+
+        """
+        load_template = self._make_load_template()
+        return load_template(template_name)
+
+    def _render_object(self, obj, *context, **kwargs):
+        """
+        Render the template associated with the given object.
+
+        """
+        loader = self._make_loader()
+
+        # TODO: consider an approach that does not require using an if
+        #   block here.  For example, perhaps this class's loader can be
+        #   a SpecLoader in all cases, and the SpecLoader instance can
+        #   check the object's type.  Or perhaps Loader and SpecLoader
+        #   can be refactored to implement the same interface.
+        if isinstance(obj, TemplateSpec):
+            loader = SpecLoader(loader)
+            template = loader.load(obj)
+        else:
+            template = loader.load_object(obj)
+
+        context = [obj] + list(context)
+
+        return self._render_string(template, *context, **kwargs)
+
+    def render_name(self, template_name, *context, **kwargs):
+        """
+        Render the template with the given name using the given context.
+
+        See the render() docstring for more information.
+
+        """
+        loader = self._make_loader()
+        template = loader.load_name(template_name)
+        return self._render_string(template, *context, **kwargs)
+
+    def render_path(self, template_path, *context, **kwargs):
+        """
+        Render the template at the given path using the given context.
+
+        Read the render() docstring for more information.
+
+        """
+        loader = self._make_loader()
+        template = loader.read(template_path)
+
+        return self._render_string(template, *context, **kwargs)
+
+    def _render_string(self, template, *context, **kwargs):
+        """
+        Render the given template string using the given context.
+
+        """
+        # RenderEngine.render() requires that the template string be unicode.
+        template = self._to_unicode_hard(template)
+
+        render_func = lambda engine, stack: engine.render(template, stack)
+
+        return self._render_final(render_func, *context, **kwargs)
+
+    # All calls to render() should end here because it prepares the
+    # context stack correctly.
+    def _render_final(self, render_func, *context, **kwargs):
+        """
+        Arguments:
+
+          render_func: a function that accepts a RenderEngine and ContextStack
+            instance and returns a template rendering as a unicode string.
+
+        """
+        stack = ContextStack.create(*context, **kwargs)
+        self._context = stack
+
+        engine = self._make_render_engine()
+
+        return render_func(engine, stack)
+
+    def render(self, template, *context, **kwargs):
+        """
+        Render the given template string, view template, or parsed template.
+
+        Returns a unicode string.
+
+        Prior to rendering, this method will convert a template that is a
+        byte string (type str in Python 2) to unicode using the string_encoding
+        and decode_errors attributes.  See the constructor docstring for
+        more information.
+
+        Arguments:
+
+          template: a template string that is unicode or a byte string,
+            a ParsedTemplate instance, or another object instance.  In the
+            final case, the function first looks for the template associated
+            to the object by calling this class's get_associated_template()
+            method.  The rendering process also uses the passed object as
+            the first element of the context stack when rendering.
+
+          *context: zero or more dictionaries, ContextStack instances, or objects
+            with which to populate the initial context stack.  None
+            arguments are skipped.  Items in the *context list are added to
+            the context stack in order so that later items in the argument
+            list take precedence over earlier items.
+
+          **kwargs: additional key-value data to add to the context stack.
+            As these arguments appear after all items in the *context list,
+            in the case of key conflicts these values take precedence over
+            all items in the *context list.
+
+        """
+        if is_string(template):
+            return self._render_string(template, *context, **kwargs)
+        if isinstance(template, ParsedTemplate):
+            render_func = lambda engine, stack: template.render(engine, stack)
+            return self._render_final(render_func, *context, **kwargs)
+        # Otherwise, we assume the template is an object.
+
+        return self._render_object(template, *context, **kwargs)
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/specloader.py
@@ -0,0 +1,90 @@
+# coding: utf-8
+
+"""
+This module supports customized (aka special or specified) template loading.
+
+"""
+
+import os.path
+
+from pystache.loader import Loader
+
+
+# TODO: add test cases for this class.
+class SpecLoader(object):
+
+    """
+    Supports loading custom-specified templates (from TemplateSpec instances).
+
+    """
+
+    def __init__(self, loader=None):
+        if loader is None:
+            loader = Loader()
+
+        self.loader = loader
+
+    def _find_relative(self, spec):
+        """
+        Return the path to the template as a relative (dir, file_name) pair.
+
+        The directory returned is relative to the directory containing the
+        class definition of the given object.  The method returns None for
+        this directory if the directory is unknown without first searching
+        the search directories.
+
+        """
+        if spec.template_rel_path is not None:
+            return os.path.split(spec.template_rel_path)
+        # Otherwise, determine the file name separately.
+
+        locator = self.loader._make_locator()
+
+        # We do not use the ternary operator for Python 2.4 support.
+        if spec.template_name is not None:
+            template_name = spec.template_name
+        else:
+            template_name = locator.make_template_name(spec)
+
+        file_name = locator.make_file_name(template_name, spec.template_extension)
+
+        return (spec.template_rel_directory, file_name)
+
+    def _find(self, spec):
+        """
+        Find and return the path to the template associated to the instance.
+
+        """
+        if spec.template_path is not None:
+            return spec.template_path
+
+        dir_path, file_name = self._find_relative(spec)
+
+        locator = self.loader._make_locator()
+
+        if dir_path is None:
+            # Then we need to search for the path.
+            path = locator.find_object(spec, self.loader.search_dirs, file_name=file_name)
+        else:
+            obj_dir = locator.get_object_directory(spec)
+            path = os.path.join(obj_dir, dir_path, file_name)
+
+        return path
+
+    def load(self, spec):
+        """
+        Find and return the template associated to a TemplateSpec instance.
+
+        Returns the template as a unicode string.
+
+        Arguments:
+
+          spec: a TemplateSpec instance.
+
+        """
+        if spec.template is not None:
+            return self.loader.unicode(spec.template, spec.template_encoding)
+
+        path = self._find(spec)
+
+        return self.loader.read(path, spec.template_encoding)
new file mode 100644
--- /dev/null
+++ b/python/pystache/pystache/template_spec.py
@@ -0,0 +1,53 @@
+# coding: utf-8
+
+"""
+Provides a class to customize template information on a per-view basis.
+
+To customize template properties for a particular view, create that view
+from a class that subclasses TemplateSpec.  The "spec" in TemplateSpec
+stands for "special" or "specified" template information.
+
+"""
+
+class TemplateSpec(object):
+
+    """
+    A mixin or interface for specifying custom template information.
+
+    The "spec" in TemplateSpec can be taken to mean that the template
+    information is either "specified" or "special."
+
+    A view should subclass this class only if customized template loading
+    is needed.  The following attributes allow one to customize/override
+    template information on a per view basis.  A None value means to use
+    default behavior for that value and perform no customization.  All
+    attributes are initialized to None.
+
+    Attributes:
+
+      template: the template as a string.
+
+      template_encoding: the encoding used by the template.
+
+      template_extension: the template file extension.  Defaults to "mustache".
+        Pass False for no extension (i.e. extensionless template files).
+
+      template_name: the name of the template.
+
+      template_path: absolute path to the template.
+
+      template_rel_directory: the directory containing the template file,
+        relative to the directory containing the module defining the class.
+
+      template_rel_path: the path to the template file, relative to the
+        directory containing the module defining the class.
+
+    """
+
+    template = None
+    template_encoding = None
+    template_extension = None
+    template_name = None
+    template_path = None
+    template_rel_directory = None
+    template_rel_path = None
new file mode 100644
--- /dev/null
+++ b/python/pystache/setup.py
@@ -0,0 +1,413 @@
+#!/usr/bin/env python
+# coding: utf-8
+
+"""
+This script supports publishing Pystache to PyPI.
+
+This docstring contains instructions to Pystache maintainers on how
+to release a new version of Pystache.
+
+(1) Prepare the release.
+
+Make sure the code is finalized and merged to master.  Bump the version
+number in setup.py, update the release date in the HISTORY file, etc.
+
+Generate the reStructuredText long_description using--
+
+    $ python setup.py prep
+
+and be sure this new version is checked in.  You must have pandoc installed
+to do this step:
+
+    http://johnmacfarlane.net/pandoc/
+
+It helps to review this auto-generated file on GitHub prior to uploading
+because the long description will be sent to PyPI and appear there after
+publishing.  PyPI attempts to convert this string to HTML before displaying
+it on the PyPI project page.  If PyPI finds any issues, it will render it
+instead as plain-text, which we do not want.
+
+To check in advance that PyPI will accept and parse the reST file as HTML,
+you can use the rst2html program installed by the docutils package
+(http://docutils.sourceforge.net/).  To install docutils:
+
+    $ pip install docutils
+
+To check the file, run the following command and confirm that it reports
+no warnings:
+
+    $ python setup.py --long-description | rst2html.py -v --no-raw > out.html
+
+See here for more information:
+
+    http://docs.python.org/distutils/uploading.html#pypi-package-display
+
+(2) Push to PyPI.  To release a new version of Pystache to PyPI--
+
+    http://pypi.python.org/pypi/pystache
+
+create a PyPI user account if you do not already have one.  The user account
+will need permissions to push to PyPI.  A current "Package Index Owner" of
+Pystache can grant you those permissions.
+
+When you have permissions, run the following:
+
+    python setup.py publish
+
+If you get an error like the following--
+
+    Upload failed (401): You must be identified to edit package information
+
+then add a file called .pyirc to your home directory with the following
+contents:
+
+    [server-login]
+    username: <PyPI username>
+    password: <PyPI password>
+
+as described here, for example:
+
+    http://docs.python.org/release/2.5.2/dist/pypirc.html
+
+(3) Tag the release on GitHub.  Here are some commands for tagging.
+
+List current tags:
+
+    git tag -l -n3
+
+Create an annotated tag:
+
+    git tag -a -m "Version 0.5.1" "v0.5.1"
+
+Push a tag to GitHub:
+
+    git push --tags defunkt v0.5.1
+
+"""
+
+import os
+import shutil
+import sys
+
+
+py_version = sys.version_info
+
+# distutils does not seem to support the following setup() arguments.
+# It displays a UserWarning when setup() is passed those options:
+#
+#  * entry_points
+#  * install_requires
+#
+# distribute works with Python 2.3.5 and above:
+#
+#   http://packages.python.org/distribute/setuptools.html#building-and-distributing-packages-with-distribute
+#
+if py_version < (2, 3, 5):
+    # TODO: this might not work yet.
+    import distutils as dist
+    from distutils import core
+    setup = core.setup
+else:
+    import setuptools as dist
+    setup = dist.setup
+
+
+VERSION = '0.5.4'  # Also change in pystache/__init__.py.
+
+FILE_ENCODING = 'utf-8'
+
+README_PATH = 'README.md'
+HISTORY_PATH = 'HISTORY.md'
+LICENSE_PATH = 'LICENSE'
+
+RST_DESCRIPTION_PATH = 'setup_description.rst'
+
+TEMP_EXTENSION = '.temp'
+
+PREP_COMMAND = 'prep'
+
+CLASSIFIERS = (
+    'Development Status :: 4 - Beta',
+    'License :: OSI Approved :: MIT License',
+    'Programming Language :: Python',
+    'Programming Language :: Python :: 2',
+    'Programming Language :: Python :: 2.4',
+    'Programming Language :: Python :: 2.5',
+    'Programming Language :: Python :: 2.6',
+    'Programming Language :: Python :: 2.7',
+    'Programming Language :: Python :: 3',
+    'Programming Language :: Python :: 3.1',
+    'Programming Language :: Python :: 3.2',
+    'Programming Language :: Python :: 3.3',
+    'Programming Language :: Python :: Implementation :: PyPy',
+)
+
+# Comments in reST begin with two dots.
+RST_LONG_DESCRIPTION_INTRO = """\
+.. Do not edit this file.  This file is auto-generated for PyPI by setup.py
+.. using pandoc, so edits should go in the source files rather than here.
+"""
+
+
+def read(path):
+    """
+    Read and return the contents of a text file as a unicode string.
+
+    """
+    # This function implementation was chosen to be compatible across Python 2/3.
+    f = open(path, 'rb')
+    # We avoid use of the with keyword for Python 2.4 support.
+    try:
+        b = f.read()
+    finally:
+        f.close()
+
+    return b.decode(FILE_ENCODING)
+
+
+def write(u, path):
+    """
+    Write a unicode string to a file (as utf-8).
+
+    """
+    print("writing to: %s" % path)
+    # This function implementation was chosen to be compatible across Python 2/3.
+    f = open(path, "wb")
+    try:
+        b = u.encode(FILE_ENCODING)
+        f.write(b)
+    finally:
+        f.close()
+
+
+def make_temp_path(path, new_ext=None):
+    """
+    Arguments:
+
+      new_ext: the new file extension, including the leading dot.
+        Defaults to preserving the existing file extension.
+
+    """
+    root, ext = os.path.splitext(path)
+    if new_ext is None:
+        new_ext = ext
+    temp_path = root + TEMP_EXTENSION + new_ext
+    return temp_path
+
+
+def strip_html_comments(text):
+    """Strip HTML comments from a unicode string."""
+    lines = text.splitlines(True)  # preserve line endings.
+
+    # Remove HTML comments (which we only allow to take a special form).
+    new_lines = filter(lambda line: not line.startswith("<!--"), lines)
+
+    return "".join(new_lines)
+
+
+# We write the converted file to a temp file to simplify debugging and
+# to avoid removing a valid pre-existing file on failure.
+def convert_md_to_rst(md_path, rst_temp_path):
+    """
+    Convert the contents of a file from Markdown to reStructuredText.
+
+    Returns the converted text as a Unicode string.
+
+    Arguments:
+
+      md_path: a path to a UTF-8 encoded Markdown file to convert.
+
+      rst_temp_path: a temporary path to which to write the converted contents.
+
+    """
+    # Pandoc uses the UTF-8 character encoding for both input and output.
+    command = "pandoc --write=rst --output=%s %s" % (rst_temp_path, md_path)
+    print("converting with pandoc: %s to %s\n-->%s" % (md_path, rst_temp_path,
+                                                       command))
+
+    if os.path.exists(rst_temp_path):
+        os.remove(rst_temp_path)
+
+    os.system(command)
+
+    if not os.path.exists(rst_temp_path):
+        s = ("Error running: %s\n"
+             "  Did you install pandoc per the %s docstring?" % (command,
+                                                                 __file__))
+        sys.exit(s)
+
+    return read(rst_temp_path)
+
+
+# The long_description needs to be formatted as reStructuredText.
+# See the following for more information:
+#
+#   http://docs.python.org/distutils/setupscript.html#additional-meta-data
+#   http://docs.python.org/distutils/uploading.html#pypi-package-display
+#
+def make_long_description():
+    """
+    Generate the reST long_description for setup() from source files.
+
+    Returns the generated long_description as a unicode string.
+
+    """
+    readme_path = README_PATH
+
+    # Remove our HTML comments because PyPI does not allow it.
+    # See the setup.py docstring for more info on this.
+    readme_md = strip_html_comments(read(readme_path))
+    history_md = strip_html_comments(read(HISTORY_PATH))
+    license_md = """\
+License
+=======
+
+""" + read(LICENSE_PATH)
+
+    sections = [readme_md, history_md, license_md]
+    md_description = '\n\n'.join(sections)
+
+    # Write the combined Markdown file to a temp path.
+    md_ext = os.path.splitext(readme_path)[1]
+    md_description_path = make_temp_path(RST_DESCRIPTION_PATH, new_ext=md_ext)
+    write(md_description, md_description_path)
+
+    rst_temp_path = make_temp_path(RST_DESCRIPTION_PATH)
+    long_description = convert_md_to_rst(md_path=md_description_path,
+                                         rst_temp_path=rst_temp_path)
+
+    return "\n".join([RST_LONG_DESCRIPTION_INTRO, long_description])
+
+
+def prep():
+    """Update the reST long_description file."""
+    long_description = make_long_description()
+    write(long_description, RST_DESCRIPTION_PATH)
+
+
+def publish():
+    """Publish this package to PyPI (aka "the Cheeseshop")."""
+    long_description = make_long_description()
+
+    if long_description != read(RST_DESCRIPTION_PATH):
+        print("""\
+Description file not up-to-date: %s
+Run the following command and commit the changes--
+
+    python setup.py %s
+""" % (RST_DESCRIPTION_PATH, PREP_COMMAND))
+        sys.exit()
+
+    print("Description up-to-date: %s" % RST_DESCRIPTION_PATH)
+
+    answer = raw_input("Are you sure you want to publish to PyPI (yes/no)?")
+
+    if answer != "yes":
+        exit("Aborted: nothing published")
+
+    os.system('python setup.py sdist upload')
+
+
+# We use the package simplejson for older Python versions since Python
+# does not contain the module json before 2.6:
+#
+#   http://docs.python.org/library/json.html
+#
+# Moreover, simplejson stopped officially support for Python 2.4 in version 2.1.0:
+#
+#   https://github.com/simplejson/simplejson/blob/master/CHANGES.txt
+#
+requires = []
+if py_version < (2, 5):
+    requires.append('simplejson<2.1')
+elif py_version < (2, 6):
+    requires.append('simplejson')
+
+INSTALL_REQUIRES = requires
+
+# TODO: decide whether to use find_packages() instead.  I'm not sure that
+#   find_packages() is available with distutils, for example.
+PACKAGES = [
+    'pystache',
+    'pystache.commands',
+    # The following packages are only for testing.
+    'pystache.tests',
+    'pystache.tests.data',
+    'pystache.tests.data.locator',
+    'pystache.tests.examples',
+]
+
+
+# The purpose of this function is to follow the guidance suggested here:
+#
+#   http://packages.python.org/distribute/python3.html#note-on-compatibility-with-setuptools
+#
+# The guidance is for better compatibility when using setuptools (e.g. with
+# earlier versions of Python 2) instead of Distribute, because of new
+# keyword arguments to setup() that setuptools may not recognize.
+def get_extra_args():
+    """
+    Return a dictionary of extra args to pass to setup().
+
+    """
+    extra = {}
+    # TODO: it might be more correct to check whether we are using
+    #   Distribute instead of setuptools, since use_2to3 doesn't take
+    #   effect when using Python 2, even when using Distribute.
+    if py_version >= (3, ):
+        # Causes 2to3 to be run during the build step.
+        extra['use_2to3'] = True
+
+    return extra
+
+
+def main(sys_argv):
+
+    # TODO: use the logging module instead of printing.
+    # TODO: include the following in a verbose mode.
+    sys.stderr.write("pystache: using: version %s of %s\n" % (repr(dist.__version__), repr(dist)))
+
+    command = sys_argv[-1]
+
+    if command == 'publish':
+        publish()
+        sys.exit()
+    elif command == PREP_COMMAND:
+        prep()
+        sys.exit()
+
+    long_description = read(RST_DESCRIPTION_PATH)
+    template_files = ['*.mustache', '*.txt']
+    extra_args = get_extra_args()
+
+    setup(name='pystache',
+          version=VERSION,
+          license='MIT',
+          description='Mustache for Python',
+          long_description=long_description,
+          author='Chris Wanstrath',
+          author_email='chris@ozmm.org',
+          maintainer='Chris Jerdonek',
+          maintainer_email='chris.jerdonek@gmail.com',
+          url='http://github.com/defunkt/pystache',
+          install_requires=INSTALL_REQUIRES,
+          packages=PACKAGES,
+          package_data = {
+              # Include template files so tests can be run.
+              'pystache.tests.data': template_files,
+              'pystache.tests.data.locator': template_files,
+              'pystache.tests.examples': template_files,
+          },
+          entry_points = {
+            'console_scripts': [
+                'pystache=pystache.commands.render:main',
+                'pystache-test=pystache.commands.test:main',
+            ],
+          },
+          classifiers = CLASSIFIERS,
+          **extra_args
+    )
+
+
+if __name__=='__main__':
+    main(sys.argv)
new file mode 100644
--- /dev/null
+++ b/python/pystache/setup_description.rst
@@ -0,0 +1,513 @@
+.. Do not edit this file.  This file is auto-generated for PyPI by setup.py
+.. using pandoc, so edits should go in the source files rather than here.
+
+Pystache
+========
+
+.. figure:: http://defunkt.github.com/pystache/images/logo_phillips.png
+   :alt: mustachioed, monocled snake by David Phillips
+
+.. figure:: https://secure.travis-ci.org/defunkt/pystache.png
+   :alt: Travis CI current build status
+
+`Pystache <http://defunkt.github.com/pystache>`__ is a Python
+implementation of `Mustache <http://mustache.github.com/>`__. Mustache
+is a framework-agnostic, logic-free templating system inspired by
+`ctemplate <http://code.google.com/p/google-ctemplate/>`__ and
+`et <http://www.ivan.fomichev.name/2008/05/erlang-template-engine-prototype.html>`__.
+Like ctemplate, Mustache "emphasizes separating logic from presentation:
+it is impossible to embed application logic in this template language."
+
+The `mustache(5) <http://mustache.github.com/mustache.5.html>`__ man
+page provides a good introduction to Mustache's syntax. For a more
+complete (and more current) description of Mustache's behavior, see the
+official `Mustache spec <https://github.com/mustache/spec>`__.
+
+Pystache is `semantically versioned <http://semver.org>`__ and can be
+found on `PyPI <http://pypi.python.org/pypi/pystache>`__. This version
+of Pystache passes all tests in `version
+1.1.2 <https://github.com/mustache/spec/tree/v1.1.2>`__ of the spec.
+
+Requirements
+------------
+
+Pystache is tested with--
+
+-  Python 2.4 (requires simplejson `version
+   2.0.9 <http://pypi.python.org/pypi/simplejson/2.0.9>`__ or earlier)
+-  Python 2.5 (requires
+   `simplejson <http://pypi.python.org/pypi/simplejson/>`__)
+-  Python 2.6
+-  Python 2.7
+-  Python 3.1
+-  Python 3.2
+-  Python 3.3
+-  `PyPy <http://pypy.org/>`__
+
+`Distribute <http://packages.python.org/distribute/>`__ (the setuptools
+fork) is recommended over
+`setuptools <http://pypi.python.org/pypi/setuptools>`__, and is required
+in some cases (e.g. for Python 3 support). If you use
+`pip <http://www.pip-installer.org/>`__, you probably already satisfy
+this requirement.
+
+JSON support is needed only for the command-line interface and to run
+the spec tests. We require simplejson for earlier versions of Python
+since Python's `json <http://docs.python.org/library/json.html>`__
+module was added in Python 2.6.
+
+For Python 2.4 we require an earlier version of simplejson since
+simplejson stopped officially supporting Python 2.4 in simplejson
+version 2.1.0. Earlier versions of simplejson can be installed manually,
+as follows:
+
+::
+
+    pip install 'simplejson<2.1.0'
+
+Official support for Python 2.4 will end with Pystache version 0.6.0.
+
+Install It
+----------
+
+::
+
+    pip install pystache
+
+And test it--
+
+::
+
+    pystache-test
+
+To install and test from source (e.g. from GitHub), see the Develop
+section.
+
+Use It
+------
+
+::
+
+    >>> import pystache
+    >>> print pystache.render('Hi {{person}}!', {'person': 'Mom'})
+    Hi Mom!
+
+You can also create dedicated view classes to hold your view logic.
+
+Here's your view class (in .../examples/readme.py):
+
+::
+
+    class SayHello(object):
+        def to(self):
+            return "Pizza"
+
+Instantiating like so:
+
+::
+
+    >>> from pystache.tests.examples.readme import SayHello
+    >>> hello = SayHello()
+
+Then your template, say\_hello.mustache (by default in the same
+directory as your class definition):
+
+::
+
+    Hello, {{to}}!
+
+Pull it together:
+
+::
+
+    >>> renderer = pystache.Renderer()
+    >>> print renderer.render(hello)
+    Hello, Pizza!
+
+For greater control over rendering (e.g. to specify a custom template
+directory), use the ``Renderer`` class like above. One can pass
+attributes to the Renderer class constructor or set them on a Renderer
+instance. To customize template loading on a per-view basis, subclass
+``TemplateSpec``. See the docstrings of the
+`Renderer <https://github.com/defunkt/pystache/blob/master/pystache/renderer.py>`__
+class and
+`TemplateSpec <https://github.com/defunkt/pystache/blob/master/pystache/template_spec.py>`__
+class for more information.
+
+You can also pre-parse a template:
+
+::
+
+    >>> parsed = pystache.parse(u"Hey {{#who}}{{.}}!{{/who}}")
+    >>> print parsed
+    [u'Hey ', _SectionNode(key=u'who', index_begin=12, index_end=18, parsed=[_EscapeNode(key=u'.'), u'!'])]
+
+And then:
+
+::
+
+    >>> print renderer.render(parsed, {'who': 'Pops'})
+    Hey Pops!
+    >>> print renderer.render(parsed, {'who': 'you'})
+    Hey you!
+
+Python 3
+--------
+
+Pystache has supported Python 3 since version 0.5.1. Pystache behaves
+slightly differently between Python 2 and 3, as follows:
+
+-  In Python 2, the default html-escape function ``cgi.escape()`` does
+   not escape single quotes. In Python 3, the default escape function
+   ``html.escape()`` does escape single quotes.
+-  In both Python 2 and 3, the string and file encodings default to
+   ``sys.getdefaultencoding()``. However, this function can return
+   different values under Python 2 and 3, even when run from the same
+   system. Check your own system for the behavior on your system, or do
+   not rely on the defaults by passing in the encodings explicitly (e.g.
+   to the ``Renderer`` class).
+
+Unicode
+-------
+
+This section describes how Pystache handles unicode, strings, and
+encodings.
+
+Internally, Pystache uses `only unicode
+strings <http://docs.python.org/howto/unicode.html#tips-for-writing-unicode-aware-programs>`__
+(``str`` in Python 3 and ``unicode`` in Python 2). For input, Pystache
+accepts both unicode strings and byte strings (``bytes`` in Python 3 and
+``str`` in Python 2). For output, Pystache's template rendering methods
+return only unicode.
+
+Pystache's ``Renderer`` class supports a number of attributes to control
+how Pystache converts byte strings to unicode on input. These include
+the ``file_encoding``, ``string_encoding``, and ``decode_errors``
+attributes.
+
+The ``file_encoding`` attribute is the encoding the renderer uses to
+convert to unicode any files read from the file system. Similarly,
+``string_encoding`` is the encoding the renderer uses to convert any
+other byte strings encountered during the rendering process into unicode
+(e.g. context values that are encoded byte strings).
+
+The ``decode_errors`` attribute is what the renderer passes as the
+``errors`` argument to Python's built-in unicode-decoding function
+(``str()`` in Python 3 and ``unicode()`` in Python 2). The valid values
+for this argument are ``strict``, ``ignore``, and ``replace``.
+
+Each of these attributes can be set via the ``Renderer`` class's
+constructor using a keyword argument of the same name. See the Renderer
+class's docstrings for further details. In addition, the
+``file_encoding`` attribute can be controlled on a per-view basis by
+subclassing the ``TemplateSpec`` class. When not specified explicitly,
+these attributes default to values set in Pystache's ``defaults``
+module.
+
+Develop
+-------
+
+To test from a source distribution (without installing)--
+
+::
+
+    python test_pystache.py
+
+To test Pystache with multiple versions of Python (with a single
+command!), you can use `tox <http://pypi.python.org/pypi/tox>`__:
+
+::
+
+    pip install 'virtualenv<1.8'  # Version 1.8 dropped support for Python 2.4.
+    pip install 'tox<1.4'  # Version 1.4 dropped support for Python 2.4.
+    tox
+
+If you do not have all Python versions listed in ``tox.ini``--
+
+::
+
+    tox -e py26,py32  # for example
+
+The source distribution tests also include doctests and tests from the
+Mustache spec. To include tests from the Mustache spec in your test
+runs:
+
+::
+
+    git submodule init
+    git submodule update
+
+The test harness parses the spec's (more human-readable) yaml files if
+`PyYAML <http://pypi.python.org/pypi/PyYAML>`__ is present. Otherwise,
+it parses the json files. To install PyYAML--
+
+::
+
+    pip install pyyaml
+
+To run a subset of the tests, you can use
+`nose <http://somethingaboutorange.com/mrl/projects/nose/0.11.1/testing.html>`__:
+
+::
+
+    pip install nose
+    nosetests --tests pystache/tests/test_context.py:GetValueTests.test_dictionary__key_present
+
+Using Python 3 with Pystache from source
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Pystache is written in Python 2 and must be converted to Python 3 prior
+to using it with Python 3. The installation process (and tox) do this
+automatically.
+
+To convert the code to Python 3 manually (while using Python 3)--
+
+::
+
+    python setup.py build
+
+This writes the converted code to a subdirectory called ``build``. By
+design, Python 3 builds
+`cannot <https://bitbucket.org/tarek/distribute/issue/292/allow-use_2to3-with-python-2>`__
+be created from Python 2.
+
+To convert the code without using setup.py, you can use
+`2to3 <http://docs.python.org/library/2to3.html>`__ as follows (two
+steps)--
+
+::
+
+    2to3 --write --nobackups --no-diffs --doctests_only pystache
+    2to3 --write --nobackups --no-diffs pystache
+
+This converts the code (and doctests) in place.
+
+To ``import pystache`` from a source distribution while using Python 3,
+be sure that you are importing from a directory containing a converted
+version of the code (e.g. from the ``build`` directory after
+converting), and not from the original (unconverted) source directory.
+Otherwise, you will get a syntax error. You can help prevent this by not
+running the Python IDE from the project directory when importing
+Pystache while using Python 3.
+
+Mailing List
+------------
+
+There is a `mailing list <http://librelist.com/browser/pystache/>`__.
+Note that there is a bit of a delay between posting a message and seeing
+it appear in the mailing list archive.
+
+Credits
+-------
+
+::
+
+    >>> context = { 'author': 'Chris Wanstrath', 'maintainer': 'Chris Jerdonek' }
+    >>> print pystache.render("Author: {{author}}\nMaintainer: {{maintainer}}", context)
+    Author: Chris Wanstrath
+    Maintainer: Chris Jerdonek
+
+Pystache logo by `David Phillips <http://davidphillips.us/>`__ is
+licensed under a `Creative Commons Attribution-ShareAlike 3.0 Unported
+License <http://creativecommons.org/licenses/by-sa/3.0/deed.en_US>`__.
+|image0|
+
+History
+=======
+
+**Note:** Official support for Python 2.4 will end with Pystache version
+0.6.0.
+
+0.5.4 (2014-07-11)
+------------------
+
+-  Bugfix: made test with filenames OS agnostic (issue #162).
+
+0.5.3 (2012-11-03)
+------------------
+
+-  Added ability to customize string coercion (e.g. to have None render
+   as ``''``) (issue #130).
+-  Added Renderer.render\_name() to render a template by name (issue
+   #122).
+-  Added TemplateSpec.template\_path to specify an absolute path to a
+   template (issue #41).
+-  Added option of raising errors on missing tags/partials:
+   ``Renderer(missing_tags='strict')`` (issue #110).
+-  Added support for finding and loading templates by file name in
+   addition to by template name (issue #127). [xgecko]
+-  Added a ``parse()`` function that yields a printable, pre-compiled
+   parse tree.
+-  Added support for rendering pre-compiled templates.
+-  Added Python 3.3 to the list of supported versions.
+-  Added support for `PyPy <http://pypy.org/>`__ (issue #125).
+-  Added support for `Travis CI <http://travis-ci.org>`__ (issue #124).
+   [msabramo]
+-  Bugfix: ``defaults.DELIMITERS`` can now be changed at runtime (issue
+   #135). [bennoleslie]
+-  Bugfix: exceptions raised from a property are no longer swallowed
+   when getting a key from a context stack (issue #110).
+-  Bugfix: lambda section values can now return non-ascii, non-unicode
+   strings (issue #118).
+-  Bugfix: allow ``test_pystache.py`` and ``tox`` to pass when run from
+   a downloaded sdist (i.e. without the spec test directory).
+-  Convert HISTORY and README files from reST to Markdown.
+-  More robust handling of byte strings in Python 3.
+-  Added Creative Commons license for David Phillips's logo.
+
+0.5.2 (2012-05-03)
+------------------
+
+-  Added support for dot notation and version 1.1.2 of the spec (issue
+   #99). [rbp]
+-  Missing partials now render as empty string per latest version of
+   spec (issue #115).
+-  Bugfix: falsey values now coerced to strings using str().
+-  Bugfix: lambda return values for sections no longer pushed onto
+   context stack (issue #113).
+-  Bugfix: lists of lambdas for sections were not rendered (issue #114).
+
+0.5.1 (2012-04-24)
+------------------
+
+-  Added support for Python 3.1 and 3.2.
+-  Added tox support to test multiple Python versions.
+-  Added test script entry point: pystache-test.
+-  Added \_\_version\_\_ package attribute.
+-  Test harness now supports both YAML and JSON forms of Mustache spec.
+-  Test harness no longer requires nose.
+
+0.5.0 (2012-04-03)
+------------------
+
+This version represents a major rewrite and refactoring of the code base
+that also adds features and fixes many bugs. All functionality and
+nearly all unit tests have been preserved. However, some backwards
+incompatible changes to the API have been made.
+
+Below is a selection of some of the changes (not exhaustive).
+
+Highlights:
+
+-  Pystache now passes all tests in version 1.0.3 of the `Mustache
+   spec <https://github.com/mustache/spec>`__. [pvande]
+-  Removed View class: it is no longer necessary to subclass from View
+   or from any other class to create a view.
+-  Replaced Template with Renderer class: template rendering behavior
+   can be modified via the Renderer constructor or by setting attributes
+   on a Renderer instance.
+-  Added TemplateSpec class: template rendering can be specified on a
+   per-view basis by subclassing from TemplateSpec.
+-  Introduced separation of concerns and removed circular dependencies
+   (e.g. between Template and View classes, cf. `issue
+   #13 <https://github.com/defunkt/pystache/issues/13>`__).
+-  Unicode now used consistently throughout the rendering process.
+-  Expanded test coverage: nosetests now runs doctests and ~105 test
+   cases from the Mustache spec (increasing the number of tests from 56
+   to ~315).
+-  Added a rudimentary benchmarking script to gauge performance while
+   refactoring.
+-  Extensive documentation added (e.g. docstrings).
+
+Other changes:
+
+-  Added a command-line interface. [vrde]
+-  The main rendering class now accepts a custom partial loader (e.g. a
+   dictionary) and a custom escape function.
+-  Non-ascii characters in str strings are now supported while
+   rendering.
+-  Added string encoding, file encoding, and errors options for decoding
+   to unicode.
+-  Removed the output encoding option.
+-  Removed the use of markupsafe.
+
+Bug fixes:
+
+-  Context values no longer processed as template strings.
+   [jakearchibald]
+-  Whitespace surrounding sections is no longer altered, per the spec.
+   [heliodor]
+-  Zeroes now render correctly when using PyPy. [alex]
+-  Multline comments now permitted. [fczuardi]
+-  Extensionless template files are now supported.
+-  Passing ``**kwargs`` to ``Template()`` no longer modifies the
+   context.
+-  Passing ``**kwargs`` to ``Template()`` with no context no longer
+   raises an exception.
+
+0.4.1 (2012-03-25)
+------------------
+
+-  Added support for Python 2.4. [wangtz, jvantuyl]
+
+0.4.0 (2011-01-12)
+------------------
+
+-  Add support for nested contexts (within template and view)
+-  Add support for inverted lists
+-  Decoupled template loading
+
+0.3.1 (2010-05-07)
+------------------
+
+-  Fix package
+
+0.3.0 (2010-05-03)
+------------------
+
+-  View.template\_path can now hold a list of path
+-  Add {{& blah}} as an alias for {{{ blah }}}
+-  Higher Order Sections
+-  Inverted sections
+
+0.2.0 (2010-02-15)
+------------------
+
+-  Bugfix: Methods returning False or None are not rendered
+-  Bugfix: Don't render an empty string when a tag's value is 0.
+   [enaeseth]
+-  Add support for using non-callables as View attributes.
+   [joshthecoder]
+-  Allow using View instances as attributes. [joshthecoder]
+-  Support for Unicode and non-ASCII-encoded bytestring output.
+   [enaeseth]
+-  Template file encoding awareness. [enaeseth]
+
+0.1.1 (2009-11-13)
+------------------
+
+-  Ensure we're dealing with strings, always
+-  Tests can be run by executing the test file directly
+
+0.1.0 (2009-11-12)
+------------------
+
+-  First release
+
+License
+=======
+
+Copyright (C) 2012 Chris Jerdonek. All rights reserved.
+
+Copyright (c) 2009 Chris Wanstrath
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+.. |image0| image:: http://i.creativecommons.org/l/by-sa/3.0/88x31.png
new file mode 100644
--- /dev/null
+++ b/python/pystache/test_pystache.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+# coding: utf-8
+
+"""
+Runs project tests.
+
+This script is a substitute for running--
+
+    python -m pystache.commands.test
+
+It is useful in Python 2.4 because the -m flag does not accept subpackages
+in Python 2.4:
+
+  http://docs.python.org/using/cmdline.html#cmdoption-m
+
+"""
+
+import sys
+
+from pystache.commands import test
+from pystache.tests.main import FROM_SOURCE_OPTION
+
+
+def main(sys_argv=sys.argv):
+    sys.argv.insert(1, FROM_SOURCE_OPTION)
+    test.main()
+
+
+if __name__=='__main__':
+    main()
new file mode 100644
--- /dev/null
+++ b/python/pystache/tox.ini
@@ -0,0 +1,36 @@
+# A tox configuration file to test across multiple Python versions.
+#
+#   http://pypi.python.org/pypi/tox
+#
+[tox]
+# Tox 1.4 drops py24 and adds py33.  In the current version, we want to
+# support 2.4, so we can't simultaneously support 3.3.
+envlist = py24,py25,py26,py27,py27-yaml,py27-noargs,py31,py32,pypy
+
+[testenv]
+# Change the working directory so that we don't import the pystache located
+# in the original location.
+changedir =
+    {envbindir}
+commands =
+    pystache-test {toxinidir}
+
+# Check that the spec tests work with PyYAML.
+[testenv:py27-yaml]
+basepython =
+    python2.7
+deps =
+    PyYAML
+changedir =
+    {envbindir}
+commands =
+    pystache-test {toxinidir}
+
+# Check that pystache-test works from an install with no arguments.
+[testenv:py27-noargs]
+basepython =
+    python2.7
+changedir =
+    {envbindir}
+commands =
+    pystache-test
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/CHANGES
@@ -0,0 +1,147 @@
+
+For a complete Mercurial changelog, see
+'https://bitbucket.org/xi/pyyaml/commits'.
+
+3.11 (2014-03-26)
+-----------------
+
+* Source and binary distributions are rebuilt against the latest
+  versions of Cython and LibYAML.
+
+3.10 (2011-05-30)
+-----------------
+
+* Do not try to build LibYAML bindings on platforms other than CPython
+  (Thank to olt(at)bogosoft(dot)com).
+* Clear cyclic references in the parser and the emitter
+  (Thank to kristjan(at)ccpgames(dot)com).
+* Dropped support for Python 2.3 and 2.4.
+
+3.09 (2009-08-31)
+-----------------
+
+* Fixed an obscure scanner error not reported when there is
+  no line break at the end of the stream (Thank to Ingy).
+* Fixed use of uninitialized memory when emitting anchors with
+  LibYAML bindings (Thank to cegner(at)yahoo-inc(dot)com).
+* Fixed emitting incorrect BOM characters for UTF-16 (Thank to
+  Valentin Nechayev)
+* Fixed the emitter for folded scalars not respecting the preferred
+  line width (Thank to Ingy).
+* Fixed a subtle ordering issue with emitting '%TAG' directives
+  (Thank to Andrey Somov).
+* Fixed performance regression with LibYAML bindings.
+
+
+3.08 (2008-12-31)
+-----------------
+
+* Python 3 support (Thank to Erick Tryzelaar).
+* Use Cython instead of Pyrex to build LibYAML bindings.
+* Refactored support for unicode and byte input/output streams.
+
+
+3.07 (2008-12-29)
+-----------------
+
+* The emitter learned to use an optional indentation indicator
+  for block scalar; thus scalars with leading whitespaces
+  could now be represented in a literal or folded style.
+* The test suite is now included in the source distribution.
+  To run the tests, type 'python setup.py test'.
+* Refactored the test suite: dropped unittest in favor of
+  a custom test appliance.
+* Fixed the path resolver in CDumper.
+* Forced an explicit document end indicator when there is
+  a possibility of parsing ambiguity.
+* More setup.py improvements: the package should be usable
+  when any combination of setuptools, Pyrex and LibYAML
+  is installed.
+* Windows binary packages are built against LibYAML-0.1.2.
+* Minor typos and corrections (Thank to Ingy dot Net
+  and Andrey Somov).
+
+
+3.06 (2008-10-03)
+-----------------
+
+* setup.py checks whether LibYAML is installed and if so, builds
+  and installs LibYAML bindings.  To force or disable installation
+  of LibYAML bindings, use '--with-libyaml' or '--without-libyaml'
+  respectively.
+* The source distribution includes compiled Pyrex sources so
+  building LibYAML bindings no longer requires Pyrex installed.
+* 'yaml.load()' raises an exception if the input stream contains
+  more than one YAML document.
+* Fixed exceptions produced by LibYAML bindings.
+* Fixed a dot '.' character being recognized as !!float.
+* Fixed Python 2.3 compatibility issue in constructing !!timestamp values.
+* Windows binary packages are built against the LibYAML stable branch.
+* Added attributes 'yaml.__version__' and  'yaml.__with_libyaml__'.
+
+
+3.05 (2007-05-13)
+-----------------
+
+* Windows binary packages were built with LibYAML trunk.
+* Fixed a bug that prevent processing a live stream of YAML documents in
+  timely manner (Thanks edward(at)sweetbytes(dot)net).
+* Fixed a bug when the path in add_path_resolver contains boolean values
+  (Thanks jstroud(at)mbi(dot)ucla(dot)edu).
+* Fixed loss of microsecond precision in timestamps
+  (Thanks edemaine(at)mit(dot)edu).
+* Fixed loading an empty YAML stream.
+* Allowed immutable subclasses of YAMLObject.
+* Made the encoding of the unicode->str conversion explicit so that
+  the conversion does not depend on the default Python encoding.
+* Forced emitting float values in a YAML compatible form.
+
+
+3.04 (2006-08-20)
+-----------------
+
+* Include experimental LibYAML bindings.
+* Fully support recursive structures.
+* Sort dictionary keys.  Mapping node values are now represented
+  as lists of pairs instead of dictionaries.  No longer check
+  for duplicate mapping keys as it didn't work correctly anyway.
+* Fix invalid output of single-quoted scalars in cases when a single
+  quote is not escaped when preceeded by whitespaces or line breaks.
+* To make porting easier, rewrite Parser not using generators.
+* Fix handling of unexpected block mapping values.
+* Fix a bug in Representer.represent_object: copy_reg.dispatch_table
+  was not correctly handled.
+* Fix a bug when a block scalar is incorrectly emitted in the simple
+  key context.
+* Hold references to the objects being represented.
+* Make Representer not try to guess !!pairs when a list is represented.
+* Fix timestamp constructing and representing.
+* Fix the 'N' plain scalar being incorrectly recognized as !!bool.
+
+
+3.03 (2006-06-19)
+-----------------
+
+* Fix Python 2.5 compatibility issues.
+* Fix numerous bugs in the float handling.
+* Fix scanning some ill-formed documents.
+* Other minor fixes.
+
+
+3.02 (2006-05-15)
+-----------------
+
+* Fix win32 installer.  Apparently bdist_wininst does not work well
+  under Linux.
+* Fix a bug in add_path_resolver.
+* Add the yaml-highlight example.  Try to run on a color terminal:
+  `python yaml_hl.py <any_document.yaml`.
+
+
+3.01 (2006-05-07)
+-----------------
+
+* Initial release.  The version number reflects the codename
+  of the project (PyYAML 3000) and differenciates it from
+  the abandoned PyYaml module. 
+
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/LICENSE
@@ -0,0 +1,19 @@
+Copyright (c) 2006 Kirill Simonov
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/PKG-INFO
@@ -0,0 +1,36 @@
+Metadata-Version: 1.1
+Name: PyYAML
+Version: 3.11
+Summary: YAML parser and emitter for Python
+Home-page: http://pyyaml.org/wiki/PyYAML
+Author: Kirill Simonov
+Author-email: xi@resolvent.net
+License: MIT
+Download-URL: http://pyyaml.org/download/pyyaml/PyYAML-3.11.tar.gz
+Description: YAML is a data serialization format designed for human readability
+        and interaction with scripting languages.  PyYAML is a YAML parser
+        and emitter for Python.
+        
+        PyYAML features a complete YAML 1.1 parser, Unicode support, pickle
+        support, capable extension API, and sensible error messages.  PyYAML
+        supports standard YAML tags and provides Python-specific tags that
+        allow to represent an arbitrary Python object.
+        
+        PyYAML is applicable for a broad range of tasks from complex
+        configuration files to object serialization and persistance.
+Platform: Any
+Classifier: Development Status :: 5 - Production/Stable
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.5
+Classifier: Programming Language :: Python :: 2.6
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.0
+Classifier: Programming Language :: Python :: 3.1
+Classifier: Programming Language :: Python :: 3.2
+Classifier: Topic :: Software Development :: Libraries :: Python Modules
+Classifier: Topic :: Text Processing :: Markup
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/README
@@ -0,0 +1,35 @@
+PyYAML - The next generation YAML parser and emitter for Python.
+
+To install, type 'python setup.py install'.
+
+By default, the setup.py script checks whether LibYAML is installed
+and if so, builds and installs LibYAML bindings.  To skip the check
+and force installation of LibYAML bindings, use the option '--with-libyaml':
+'python setup.py --with-libyaml install'.  To disable the check and
+skip building and installing LibYAML bindings, use '--without-libyaml':
+'python setup.py --without-libyaml install'.
+
+When LibYAML bindings are installed, you may use fast LibYAML-based
+parser and emitter as follows:
+
+    >>> yaml.load(stream, Loader=yaml.CLoader)
+    >>> yaml.dump(data, Dumper=yaml.CDumper)
+
+PyYAML includes a comprehensive test suite.  To run the tests,
+type 'python setup.py test'.
+
+For more information, check the PyYAML homepage:
+'http://pyyaml.org/wiki/PyYAML'.
+
+For PyYAML tutorial and reference, see:
+'http://pyyaml.org/wiki/PyYAMLDocumentation'.
+
+Post your questions and opinions to the YAML-Core mailing list:
+'http://lists.sourceforge.net/lists/listinfo/yaml-core'.
+
+Submit bug reports and feature requests to the PyYAML bug tracker:
+'http://pyyaml.org/newticket?component=pyyaml'.
+
+PyYAML is written by Kirill Simonov <xi@resolvent.net>.  It is released
+under the MIT license. See the file LICENSE for more details.
+
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/examples/pygments-lexer/example.yaml
@@ -0,0 +1,302 @@
+
+#
+# Examples from the Preview section of the YAML specification
+# (http://yaml.org/spec/1.2/#Preview)
+#
+
+# Sequence of scalars
+---
+- Mark McGwire
+- Sammy Sosa
+- Ken Griffey
+
+# Mapping scalars to scalars
+---
+hr:  65    # Home runs
+avg: 0.278 # Batting average
+rbi: 147   # Runs Batted In
+
+# Mapping scalars to sequences
+---
+american:
+  - Boston Red Sox
+  - Detroit Tigers
+  - New York Yankees
+national:
+  - New York Mets
+  - Chicago Cubs
+  - Atlanta Braves
+
+# Sequence of mappings
+---
+-
+  name: Mark McGwire
+  hr:   65
+  avg:  0.278
+-
+  name: Sammy Sosa
+  hr:   63
+  avg:  0.288
+
+# Sequence of sequences
+---
+- [name        , hr, avg  ]
+- [Mark McGwire, 65, 0.278]
+- [Sammy Sosa  , 63, 0.288]
+
+# Mapping of mappings
+---
+Mark McGwire: {hr: 65, avg: 0.278}
+Sammy Sosa: {
+    hr: 63,
+    avg: 0.288
+  }
+
+# Two documents in a stream
+--- # Ranking of 1998 home runs
+- Mark McGwire
+- Sammy Sosa
+- Ken Griffey
+--- # Team ranking
+- Chicago Cubs
+- St Louis Cardinals
+
+# Documents with the end indicator
+---
+time: 20:03:20
+player: Sammy Sosa
+action: strike (miss)
+...
+---
+time: 20:03:47
+player: Sammy Sosa
+action: grand slam
+...
+
+# Comments
+---
+hr: # 1998 hr ranking
+  - Mark McGwire
+  - Sammy Sosa
+rbi:
+  # 1998 rbi ranking
+  - Sammy Sosa
+  - Ken Griffey
+
+# Anchors and aliases
+---
+hr:
+  - Mark McGwire
+  # Following node labeled SS
+  - &SS Sammy Sosa
+rbi:
+  - *SS # Subsequent occurrence
+  - Ken Griffey
+
+# Mapping between sequences
+---
+? - Detroit Tigers
+  - Chicago cubs
+:
+  - 2001-07-23
+? [ New York Yankees,
+    Atlanta Braves ]
+: [ 2001-07-02, 2001-08-12,
+    2001-08-14 ]
+
+# Inline nested mapping
+---
+# products purchased
+- item    : Super Hoop
+  quantity: 1
+- item    : Basketball
+  quantity: 4
+- item    : Big Shoes
+  quantity: 1
+
+# Literal scalars
+--- | # ASCII art
+  \//||\/||
+  // ||  ||__
+
+# Folded scalars
+--- >
+  Mark McGwire's
+  year was crippled
+  by a knee injury.
+
+# Preserved indented block in a folded scalar
+---
+>
+ Sammy Sosa completed another
+ fine season with great stats.
+
+   63 Home Runs
+   0.288 Batting Average
+
+ What a year!
+
+# Indentation determines scope
+---
+name: Mark McGwire
+accomplishment: >
+  Mark set a major league
+  home run record in 1998.
+stats: |
+  65 Home Runs
+  0.278 Batting Average
+
+# Quoted scalars
+---
+unicode: "Sosa did fine.\u263A"
+control: "\b1998\t1999\t2000\n"
+hex esc: "\x0d\x0a is \r\n"
+single: '"Howdy!" he cried.'
+quoted: ' # not a ''comment''.'
+tie-fighter: '|\-*-/|'
+
+# Multi-line flow scalars
+---
+plain:
+  This unquoted scalar
+  spans many lines.
+quoted: "So does this
+  quoted scalar.\n"
+
+# Integers
+---
+canonical: 12345
+decimal: +12_345
+sexagesimal: 3:25:45
+octal: 014
+hexadecimal: 0xC
+
+# Floating point
+---
+canonical: 1.23015e+3
+exponential: 12.3015e+02
+sexagesimal: 20:30.15
+fixed: 1_230.15
+negative infinity: -.inf
+not a number: .NaN
+
+# Miscellaneous
+---
+null: ~
+true: boolean
+false: boolean
+string: '12345'
+
+# Timestamps
+---
+canonical: 2001-12-15T02:59:43.1Z
+iso8601: 2001-12-14t21:59:43.10-05:00
+spaced: 2001-12-14 21:59:43.10 -5
+date: 2002-12-14
+
+# Various explicit tags
+---
+not-date: !!str 2002-04-28
+picture: !!binary |
+ R0lGODlhDAAMAIQAAP//9/X
+ 17unp5WZmZgAAAOfn515eXv
+ Pz7Y6OjuDg4J+fn5OTk6enp
+ 56enmleECcgggoBADs=
+application specific tag: !something |
+ The semantics of the tag
+ above may be different for
+ different documents.
+
+# Global tags
+%TAG ! tag:clarkevans.com,2002:
+--- !shape
+  # Use the ! handle for presenting
+  # tag:clarkevans.com,2002:circle
+- !circle
+  center: &ORIGIN {x: 73, y: 129}
+  radius: 7
+- !line
+  start: *ORIGIN
+  finish: { x: 89, y: 102 }
+- !label
+  start: *ORIGIN
+  color: 0xFFEEBB
+  text: Pretty vector drawing.
+
+# Unordered sets
+--- !!set
+# sets are represented as a
+# mapping where each key is
+# associated with the empty string
+? Mark McGwire
+? Sammy Sosa
+? Ken Griff
+
+# Ordered mappings
+--- !!omap
+# ordered maps are represented as
+# a sequence of mappings, with
+# each mapping having one key
+- Mark McGwire: 65
+- Sammy Sosa: 63
+- Ken Griffy: 58
+
+# Full length example
+--- !<tag:clarkevans.com,2002:invoice>
+invoice: 34843
+date   : 2001-01-23
+bill-to: &id001
+    given  : Chris
+    family : Dumars
+    address:
+        lines: |
+            458 Walkman Dr.
+            Suite #292
+        city    : Royal Oak
+        state   : MI
+        postal  : 48046
+ship-to: *id001
+product:
+    - sku         : BL394D
+      quantity    : 4
+      description : Basketball
+      price       : 450.00
+    - sku         : BL4438H
+      quantity    : 1
+      description : Super Hoop
+      price       : 2392.00
+tax  : 251.42
+total: 4443.52
+comments:
+    Late afternoon is best.
+    Backup contact is Nancy
+    Billsmer @ 338-4338.
+
+# Another full-length example
+---
+Time: 2001-11-23 15:01:42 -5
+User: ed
+Warning:
+  This is an error message
+  for the log file
+---
+Time: 2001-11-23 15:02:31 -5
+User: ed
+Warning:
+  A slightly different error
+  message.
+---
+Date: 2001-11-23 15:03:17 -5
+User: ed
+Fatal:
+  Unknown variable "bar"
+Stack:
+  - file: TopClass.py
+    line: 23
+    code: |
+      x = MoreObject("345\n")
+  - file: MoreClass.py
+    line: 58
+    code: |-
+      foo = bar
+
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/examples/pygments-lexer/yaml.py
@@ -0,0 +1,431 @@
+
+"""
+yaml.py
+
+Lexer for YAML, a human-friendly data serialization language
+(http://yaml.org/).
+
+Written by Kirill Simonov <xi@resolvent.net>.
+
+License: Whatever suitable for inclusion into the Pygments package.
+"""
+
+from pygments.lexer import  \
+        ExtendedRegexLexer, LexerContext, include, bygroups
+from pygments.token import  \
+        Text, Comment, Punctuation, Name, Literal
+
+__all__ = ['YAMLLexer']
+
+
+class YAMLLexerContext(LexerContext):
+    """Indentation context for the YAML lexer."""
+
+    def __init__(self, *args, **kwds):
+        super(YAMLLexerContext, self).__init__(*args, **kwds)
+        self.indent_stack = []
+        self.indent = -1
+        self.next_indent = 0
+        self.block_scalar_indent = None
+
+
+def something(TokenClass):
+    """Do not produce empty tokens."""
+    def callback(lexer, match, context):
+        text = match.group()
+        if not text:
+            return
+        yield match.start(), TokenClass, text
+        context.pos = match.end()
+    return callback
+
+def reset_indent(TokenClass):
+    """Reset the indentation levels."""
+    def callback(lexer, match, context):
+        text = match.group()
+        context.indent_stack = []
+        context.indent = -1
+        context.next_indent = 0
+        context.block_scalar_indent = None
+        yield match.start(), TokenClass, text
+        context.pos = match.end()
+    return callback
+
+def save_indent(TokenClass, start=False):
+    """Save a possible indentation level."""
+    def callback(lexer, match, context):
+        text = match.group()
+        extra = ''
+        if start:
+            context.next_indent = len(text)
+            if context.next_indent < context.indent:
+                while context.next_indent < context.indent:
+                    context.indent = context.indent_stack.pop()
+                if context.next_indent > context.indent:
+                    extra = text[context.indent:]
+                    text = text[:context.indent]
+        else:
+            context.next_indent += len(text)
+        if text:
+            yield match.start(), TokenClass, text
+        if extra:
+            yield match.start()+len(text), TokenClass.Error, extra
+        context.pos = match.end()
+    return callback
+
+def set_indent(TokenClass, implicit=False):
+    """Set the previously saved indentation level."""
+    def callback(lexer, match, context):
+        text = match.group()
+        if context.indent < context.next_indent:
+            context.indent_stack.append(context.indent)
+            context.indent = context.next_indent
+        if not implicit:
+            context.next_indent += len(text)
+        yield match.start(), TokenClass, text
+        context.pos = match.end()
+    return callback
+
+def set_block_scalar_indent(TokenClass):
+    """Set an explicit indentation level for a block scalar."""
+    def callback(lexer, match, context):
+        text = match.group()
+        context.block_scalar_indent = None
+        if not text:
+            return
+        increment = match.group(1)
+        if increment:
+            current_indent = max(context.indent, 0)
+            increment = int(increment)
+            context.block_scalar_indent = current_indent + increment
+        if text:
+            yield match.start(), TokenClass, text
+            context.pos = match.end()
+    return callback
+
+def parse_block_scalar_empty_line(IndentTokenClass, ContentTokenClass):
+    """Process an empty line in a block scalar."""
+    def callback(lexer, match, context):
+        text = match.group()
+        if (context.block_scalar_indent is None or
+                len(text) <= context.block_scalar_indent):
+            if text:
+                yield match.start(), IndentTokenClass, text
+        else:
+            indentation = text[:context.block_scalar_indent]
+            content = text[context.block_scalar_indent:]
+            yield match.start(), IndentTokenClass, indentation
+            yield (match.start()+context.block_scalar_indent,
+                    ContentTokenClass, content)
+        context.pos = match.end()
+    return callback
+
+def parse_block_scalar_indent(TokenClass):
+    """Process indentation spaces in a block scalar."""
+    def callback(lexer, match, context):
+        text = match.group()
+        if context.block_scalar_indent is None:
+            if len(text) <= max(context.indent, 0):
+                context.stack.pop()
+                context.stack.pop()
+                return
+            context.block_scalar_indent = len(text)
+        else:
+            if len(text) < context.block_scalar_indent:
+                context.stack.pop()
+                context.stack.pop()
+                return
+        if text:
+            yield match.start(), TokenClass, text
+            context.pos = match.end()
+    return callback
+
+def parse_plain_scalar_indent(TokenClass):
+    """Process indentation spaces in a plain scalar."""
+    def callback(lexer, match, context):
+        text = match.group()
+        if len(text) <= context.indent:
+            context.stack.pop()
+            context.stack.pop()
+            return
+        if text:
+            yield match.start(), TokenClass, text
+            context.pos = match.end()
+    return callback
+
+
+class YAMLLexer(ExtendedRegexLexer):
+    """Lexer for the YAML language."""
+
+    name = 'YAML'
+    aliases = ['yaml']
+    filenames = ['*.yaml', '*.yml']
+    mimetypes = ['text/x-yaml']
+
+    tokens = {
+
+        # the root rules
+        'root': [
+            # ignored whitespaces
+            (r'[ ]+(?=#|$)', Text.Blank),
+            # line breaks
+            (r'\n+', Text.Break),
+            # a comment
+            (r'#[^\n]*', Comment.Single),
+            # the '%YAML' directive
+            (r'^%YAML(?=[ ]|$)', reset_indent(Name.Directive),
+                'yaml-directive'),
+            # the %TAG directive
+            (r'^%TAG(?=[ ]|$)', reset_indent(Name.Directive),
+                'tag-directive'),
+            # document start and document end indicators
+            (r'^(?:---|\.\.\.)(?=[ ]|$)',
+                reset_indent(Punctuation.Document), 'block-line'),
+            # indentation spaces
+            (r'[ ]*(?![ \t\n\r\f\v]|$)',
+                save_indent(Text.Indent, start=True),
+                ('block-line', 'indentation')),
+        ],
+
+        # trailing whitespaces after directives or a block scalar indicator
+        'ignored-line': [
+            # ignored whitespaces
+            (r'[ ]+(?=#|$)', Text.Blank),
+            # a comment
+            (r'#[^\n]*', Comment.Single),
+            # line break
+            (r'\n', Text.Break, '#pop:2'),
+        ],
+
+        # the %YAML directive
+        'yaml-directive': [
+            # the version number
+            (r'([ ]+)([0-9]+\.[0-9]+)',
+                bygroups(Text.Blank, Literal.Version), 'ignored-line'),
+        ],
+
+        # the %YAG directive
+        'tag-directive': [
+            # a tag handle and the corresponding prefix
+            (r'([ ]+)(!|![0-9A-Za-z_-]*!)'
+                r'([ ]+)(!|!?[0-9A-Za-z;/?:@&=+$,_.!~*\'()\[\]%-]+)',
+                bygroups(Text.Blank, Name.Type, Text.Blank, Name.Type),
+                'ignored-line'),
+        ],
+
+        # block scalar indicators and indentation spaces
+        'indentation': [
+            # trailing whitespaces are ignored
+            (r'[ ]*$', something(Text.Blank), '#pop:2'),
+            # whitespaces preceeding block collection indicators
+            (r'[ ]+(?=[?:-](?:[ ]|$))', save_indent(Text.Indent)),
+            # block collection indicators
+            (r'[?:-](?=[ ]|$)', set_indent(Punctuation.Indicator)),
+            # the beginning a block line
+            (r'[ ]*', save_indent(Text.Indent), '#pop'),
+        ],
+
+        # an indented line in the block context
+        'block-line': [
+            # the line end
+            (r'[ ]*(?=#|$)', something(Text.Blank), '#pop'),
+            # whitespaces separating tokens
+            (r'[ ]+', Text.Blank),
+            # tags, anchors and aliases,
+            include('descriptors'),
+            # block collections and scalars
+            include('block-nodes'),
+            # flow collections and quoted scalars
+            include('flow-nodes'),
+            # a plain scalar
+            (r'(?=[^ \t\n\r\f\v?:,\[\]{}#&*!|>\'"%@`-]|[?:-][^ \t\n\r\f\v])',
+                something(Literal.Scalar.Plain),
+                'plain-scalar-in-block-context'),
+        ],
+
+        # tags, anchors, aliases
+        'descriptors' : [
+            # a full-form tag
+            (r'!<[0-9A-Za-z;/?:@&=+$,_.!~*\'()\[\]%-]+>', Name.Type),
+            # a tag in the form '!', '!suffix' or '!handle!suffix'
+            (r'!(?:[0-9A-Za-z_-]+)?'
+                r'(?:![0-9A-Za-z;/?:@&=+$,_.!~*\'()\[\]%-]+)?', Name.Type),
+            # an anchor
+            (r'&[0-9A-Za-z_-]+', Name.Anchor),
+            # an alias
+            (r'\*[0-9A-Za-z_-]+', Name.Alias),
+        ],
+
+        # block collections and scalars
+        'block-nodes': [
+            # implicit key
+            (r':(?=[ ]|$)', set_indent(Punctuation.Indicator, implicit=True)),
+            # literal and folded scalars
+            (r'[|>]', Punctuation.Indicator,
+                ('block-scalar-content', 'block-scalar-header')),
+        ],
+
+        # flow collections and quoted scalars
+        'flow-nodes': [
+            # a flow sequence
+            (r'\[', Punctuation.Indicator, 'flow-sequence'),
+            # a flow mapping
+            (r'\{', Punctuation.Indicator, 'flow-mapping'),
+            # a single-quoted scalar
+            (r'\'', Literal.Scalar.Flow.Quote, 'single-quoted-scalar'),
+            # a double-quoted scalar
+            (r'\"', Literal.Scalar.Flow.Quote, 'double-quoted-scalar'),
+        ],
+
+        # the content of a flow collection
+        'flow-collection': [
+            # whitespaces
+            (r'[ ]+', Text.Blank),
+            # line breaks
+            (r'\n+', Text.Break),
+            # a comment
+            (r'#[^\n]*', Comment.Single),
+            # simple indicators
+            (r'[?:,]', Punctuation.Indicator),
+            # tags, anchors and aliases
+            include('descriptors'),
+            # nested collections and quoted scalars
+            include('flow-nodes'),
+            # a plain scalar
+            (r'(?=[^ \t\n\r\f\v?:,\[\]{}#&*!|>\'"%@`])',
+                something(Literal.Scalar.Plain),
+                'plain-scalar-in-flow-context'),
+        ],
+
+        # a flow sequence indicated by '[' and ']'
+        'flow-sequence': [
+            # include flow collection rules
+            include('flow-collection'),
+            # the closing indicator
+            (r'\]', Punctuation.Indicator, '#pop'),
+        ],
+
+        # a flow mapping indicated by '{' and '}'
+        'flow-mapping': [
+            # include flow collection rules
+            include('flow-collection'),
+            # the closing indicator
+            (r'\}', Punctuation.Indicator, '#pop'),
+        ],
+
+        # block scalar lines
+        'block-scalar-content': [
+            # line break
+            (r'\n', Text.Break),
+            # empty line
+            (r'^[ ]+$',
+                parse_block_scalar_empty_line(Text.Indent,
+                    Literal.Scalar.Block)),
+            # indentation spaces (we may leave the state here)
+            (r'^[ ]*', parse_block_scalar_indent(Text.Indent)),
+            # line content
+            (r'[^\n\r\f\v]+', Literal.Scalar.Block),
+        ],
+
+        # the content of a literal or folded scalar
+        'block-scalar-header': [
+            # indentation indicator followed by chomping flag
+            (r'([1-9])?[+-]?(?=[ ]|$)',
+                set_block_scalar_indent(Punctuation.Indicator),
+                'ignored-line'),
+            # chomping flag followed by indentation indicator
+            (r'[+-]?([1-9])?(?=[ ]|$)',
+                set_block_scalar_indent(Punctuation.Indicator),
+                'ignored-line'),
+        ],
+
+        # ignored and regular whitespaces in quoted scalars
+        'quoted-scalar-whitespaces': [
+            # leading and trailing whitespaces are ignored
+            (r'^[ ]+|[ ]+$', Text.Blank),
+            # line breaks are ignored
+            (r'\n+', Text.Break),
+            # other whitespaces are a part of the value
+            (r'[ ]+', Literal.Scalar.Flow),
+        ],
+
+        # single-quoted scalars
+        'single-quoted-scalar': [
+            # include whitespace and line break rules
+            include('quoted-scalar-whitespaces'),
+            # escaping of the quote character
+            (r'\'\'', Literal.Scalar.Flow.Escape),
+            # regular non-whitespace characters
+            (r'[^ \t\n\r\f\v\']+', Literal.Scalar.Flow),
+            # the closing quote
+            (r'\'', Literal.Scalar.Flow.Quote, '#pop'),
+        ],
+
+        # double-quoted scalars
+        'double-quoted-scalar': [
+            # include whitespace and line break rules
+            include('quoted-scalar-whitespaces'),
+            # escaping of special characters
+            (r'\\[0abt\tn\nvfre "\\N_LP]', Literal.Scalar.Flow.Escape),
+            # escape codes
+            (r'\\(?:x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})',
+                Literal.Scalar.Flow.Escape),
+            # regular non-whitespace characters
+            (r'[^ \t\n\r\f\v\"\\]+', Literal.Scalar.Flow),
+            # the closing quote
+            (r'"', Literal.Scalar.Flow.Quote, '#pop'),
+        ],
+
+        # the beginning of a new line while scanning a plain scalar
+        'plain-scalar-in-block-context-new-line': [
+            # empty lines
+            (r'^[ ]+$', Text.Blank),
+            # line breaks
+            (r'\n+', Text.Break),
+            # document start and document end indicators
+            (r'^(?=---|\.\.\.)', something(Punctuation.Document), '#pop:3'),
+            # indentation spaces (we may leave the block line state here)
+            (r'^[ ]*', parse_plain_scalar_indent(Text.Indent), '#pop'),
+        ],
+
+        # a plain scalar in the block context
+        'plain-scalar-in-block-context': [
+            # the scalar ends with the ':' indicator
+            (r'[ ]*(?=:[ ]|:$)', something(Text.Blank), '#pop'),
+            # the scalar ends with whitespaces followed by a comment
+            (r'[ ]+(?=#)', Text.Blank, '#pop'),
+            # trailing whitespaces are ignored
+            (r'[ ]+$', Text.Blank),
+            # line breaks are ignored
+            (r'\n+', Text.Break, 'plain-scalar-in-block-context-new-line'),
+            # other whitespaces are a part of the value
+            (r'[ ]+', Literal.Scalar.Plain),
+            # regular non-whitespace characters
+            (r'(?::(?![ \t\n\r\f\v])|[^ \t\n\r\f\v:])+',
+                Literal.Scalar.Plain),
+        ],
+
+        # a plain scalar is the flow context
+        'plain-scalar-in-flow-context': [
+            # the scalar ends with an indicator character
+            (r'[ ]*(?=[,:?\[\]{}])', something(Text.Blank), '#pop'),
+            # the scalar ends with a comment
+            (r'[ ]+(?=#)', Text.Blank, '#pop'),
+            # leading and trailing whitespaces are ignored
+            (r'^[ ]+|[ ]+$', Text.Blank),
+            # line breaks are ignored
+            (r'\n+', Text.Break),
+            # other whitespaces are a part of the value
+            (r'[ ]+', Literal.Scalar.Plain),
+            # regular non-whitespace characters
+            (r'[^ \t\n\r\f\v,:?\[\]{}]+', Literal.Scalar.Plain),
+        ],
+
+    }
+
+    def get_tokens_unprocessed(self, text=None, context=None):
+        if context is None:
+            context = YAMLLexerContext(text, 0)
+        return super(YAMLLexer, self).get_tokens_unprocessed(text, context)
+
+
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/examples/yaml-highlight/yaml_hl.cfg
@@ -0,0 +1,115 @@
+%YAML 1.1
+---
+
+ascii:
+
+    header: "\e[0;1;30;40m"
+
+    footer: "\e[0m"
+
+    tokens:
+        stream-start:
+        stream-end:
+        directive:              { start: "\e[35m", end: "\e[0;1;30;40m" }
+        document-start:         { start: "\e[35m", end: "\e[0;1;30;40m" }
+        document-end:           { start: "\e[35m", end: "\e[0;1;30;40m" }
+        block-sequence-start:
+        block-mapping-start:
+        block-end:
+        flow-sequence-start:    { start: "\e[33m", end: "\e[0;1;30;40m" }
+        flow-mapping-start:     { start: "\e[33m", end: "\e[0;1;30;40m" }
+        flow-sequence-end:      { start: "\e[33m", end: "\e[0;1;30;40m" }
+        flow-mapping-end:       { start: "\e[33m", end: "\e[0;1;30;40m" }
+        key:                    { start: "\e[33m", end: "\e[0;1;30;40m" }
+        value:                  { start: "\e[33m", end: "\e[0;1;30;40m" }
+        block-entry:            { start: "\e[33m", end: "\e[0;1;30;40m" }
+        flow-entry:             { start: "\e[33m", end: "\e[0;1;30;40m" }
+        alias:                  { start: "\e[32m", end: "\e[0;1;30;40m" }
+        anchor:                 { start: "\e[32m", end: "\e[0;1;30;40m" }
+        tag:                    { start: "\e[32m", end: "\e[0;1;30;40m" }
+        scalar:                 { start: "\e[36m", end: "\e[0;1;30;40m" }
+
+    replaces:
+        - "\r\n":   "\n"
+        - "\r":     "\n"
+        - "\n":     "\n"
+        - "\x85":   "\n"
+        - "\u2028": "\n"
+        - "\u2029": "\n"
+
+html: &html
+
+    tokens:
+        stream-start:
+        stream-end:
+        directive:              { start: <code class="directive_token">, end: </code> }
+        document-start:         { start: <code class="document_start_token">, end: </code> }
+        document-end:           { start: <code class="document_end_token">, end: </code> }
+        block-sequence-start:
+        block-mapping-start:
+        block-end:
+        flow-sequence-start:    { start: <code class="delimiter_token">, end: </code> }
+        flow-mapping-start:     { start: <code class="delimiter_token">, end: </code> }
+        flow-sequence-end:      { start: <code class="delimiter_token">, end: </code> }
+        flow-mapping-end:       { start: <code class="delimiter_token">, end: </code> }
+        key:                    { start: <code class="delimiter_token">, end: </code> }
+        value:                  { start: <code class="delimiter_token">, end: </code> }
+        block-entry:            { start: <code class="delimiter_token">, end: </code> }
+        flow-entry:             { start: <code class="delimiter_token">, end: </code> }
+        alias:                  { start: <code class="anchor_token">, end: </code> }
+        anchor:                 { start: <code class="anchor_token">, end: </code> }
+        tag:                    { start: <code class="tag_token">, end: </code> }
+        scalar:                 { start: <code class="scalar_token">, end: </code> }
+
+    events:
+        stream-start:   { start: <pre class="yaml_stream"> }
+        stream-end:     { end: </pre> }
+        document-start: { start: <span class="document"> }
+        document-end:   { end: </span> }
+        sequence-start: { start: <span class="sequence"> }
+        sequence-end:   { end: </span> }
+        mapping-start:  { start: <span class="mapping"> }
+        mapping-end:    { end: </span> }
+        scalar:         { start: <span class="scalar">, end: </span> }
+
+    replaces:
+        - "\r\n":   "\n"
+        - "\r":     "\n"
+        - "\n":     "\n"
+        - "\x85":   "\n"
+        - "\u2028": "\n"
+        - "\u2029": "\n"
+        - "&":      "&amp;"
+        - "<":      "&lt;"
+        - ">":      "&gt;"
+
+html-page:
+
+    header: |
+        <html>
+        <head>
+        <title>A YAML stream</title>
+        <style type="text/css">
+            .document { background: #FFF }
+            .sequence { background: #EEF }
+            .mapping { background: #EFE }
+            .scalar { background: #FEE }
+            .directive_token { color: #C0C }
+            .document_start_token { color: #C0C; font-weight: bold }
+            .document_end_token { color: #C0C; font-weight: bold }
+            .delimiter_token { color: #600; font-weight: bold }
+            .anchor_token { color: #090 }
+            .tag_token { color: #090 }
+            .scalar_token { color: #000 }
+            .yaml_stream { color: #999 }
+        </style>
+        <body>
+
+    footer: |
+        </body>
+        </html>
+
+    <<: *html
+
+
+# vim: ft=yaml
new file mode 100755
--- /dev/null
+++ b/python/pyyaml/examples/yaml-highlight/yaml_hl.py
@@ -0,0 +1,114 @@
+#!/usr/bin/python
+
+import yaml, codecs, sys, os.path, optparse
+
+class Style:
+
+    def __init__(self, header=None, footer=None,
+            tokens=None, events=None, replaces=None):
+        self.header = header
+        self.footer = footer
+        self.replaces = replaces
+        self.substitutions = {}
+        for domain, Class in [(tokens, 'Token'), (events, 'Event')]:
+            if not domain:
+                continue
+            for key in domain:
+                name = ''.join([part.capitalize() for part in key.split('-')])
+                cls = getattr(yaml, '%s%s' % (name, Class))
+                value = domain[key]
+                if not value:
+                    continue
+                start = value.get('start')
+                end = value.get('end')
+                if start:
+                    self.substitutions[cls, -1] = start
+                if end:
+                    self.substitutions[cls, +1] = end
+
+    def __setstate__(self, state):
+        self.__init__(**state)
+
+yaml.add_path_resolver(u'tag:yaml.org,2002:python/object:__main__.Style',
+        [None], dict)
+yaml.add_path_resolver(u'tag:yaml.org,2002:pairs',
+        [None, u'replaces'], list)
+
+class YAMLHighlight:
+
+    def __init__(self, options):
+        config = yaml.load(file(options.config, 'rb').read())
+        self.style = config[options.style]
+        if options.input:
+            self.input = file(options.input, 'rb')
+        else:
+            self.input = sys.stdin
+        if options.output:
+            self.output = file(options.output, 'wb')
+        else:
+            self.output = sys.stdout
+
+    def highlight(self):
+        input = self.input.read()
+        if input.startswith(codecs.BOM_UTF16_LE):
+            input = unicode(input, 'utf-16-le')
+        elif input.startswith(codecs.BOM_UTF16_BE):
+            input = unicode(input, 'utf-16-be')
+        else:
+            input = unicode(input, 'utf-8')
+        substitutions = self.style.substitutions
+        tokens = yaml.scan(input)
+        events = yaml.parse(input)
+        markers = []
+        number = 0
+        for token in tokens:
+            number += 1
+            if token.start_mark.index != token.end_mark.index:
+                cls = token.__class__
+                if (cls, -1) in substitutions:
+                    markers.append([token.start_mark.index, +2, number, substitutions[cls, -1]])
+                if (cls, +1) in substitutions:
+                    markers.append([token.end_mark.index, -2, number, substitutions[cls, +1]])
+        number = 0
+        for event in events:
+            number += 1
+            cls = event.__class__
+            if (cls, -1) in substitutions:
+                markers.append([event.start_mark.index, +1, number, substitutions[cls, -1]])
+            if (cls, +1) in substitutions:
+                markers.append([event.end_mark.index, -1, number, substitutions[cls, +1]])
+        markers.sort()
+        markers.reverse()
+        chunks = []
+        position = len(input)
+        for index, weight1, weight2, substitution in markers:
+            if index < position:
+                chunk = input[index:position]
+                for substring, replacement in self.style.replaces:
+                    chunk = chunk.replace(substring, replacement)
+                chunks.append(chunk)
+                position = index
+            chunks.append(substitution)
+        chunks.reverse()
+        result = u''.join(chunks)
+        if self.style.header:
+            self.output.write(self.style.header)
+        self.output.write(result.encode('utf-8'))
+        if self.style.footer:
+            self.output.write(self.style.footer)
+
+if __name__ == '__main__':
+    parser = optparse.OptionParser()
+    parser.add_option('-s', '--style', dest='style', default='ascii',
+            help="specify the highlighting style", metavar='STYLE')
+    parser.add_option('-c', '--config', dest='config',
+            default=os.path.join(os.path.dirname(sys.argv[0]), 'yaml_hl.cfg'),
+            help="set an alternative configuration file", metavar='CONFIG')
+    parser.add_option('-i', '--input', dest='input', default=None,
+            help="set the input file (default: stdin)", metavar='FILE')
+    parser.add_option('-o', '--output', dest='output', default=None,
+            help="set the output file (default: stdout)", metavar='FILE')
+    (options, args) = parser.parse_args()
+    hl = YAMLHighlight(options)
+    hl.highlight()
+
new file mode 100644
--- /dev/null
+++ b/python/pyyaml/ext/_yaml.c
@@ -0,0 +1,22190 @@
+/* Generated by Cython 0.20.1 on Wed Mar 26 13:55:16 2014 */
+
+#define PY_SSIZE_T_CLEAN
+#ifndef CYTHON_USE_PYLONG_INTERNALS
+#ifdef PYLONG_BITS_IN_DIGIT
+#define CYTHON_USE_PYLONG_INTERNALS 0
+#else
+#include "pyconfig.h"
+#ifdef PYLONG_BITS_IN_DIGIT
+#define CYTHON_USE_PYLONG_INTERNALS 1
+#else
+#define CYTHON_USE_PYLONG_INTERNALS 0
+#endif
+#endif
+#endif
+#include "Python.h"
+#ifndef Py_PYTHON_H
+    #error Python headers needed to compile C extensions, please install development version of Python.
+#elif PY_VERSION_HEX < 0x02040000
+    #error Cython requires Python 2.4+.
+#else
+#define CYTHON_ABI "0_20_1"
+#include <stddef.h> /* For offsetof */
+#ifndef offsetof
+#define offsetof(type, member) ( (size_t) & ((type*)0) -> member )
+#endif
+#if !defined(WIN32) && !defined(MS_WINDOWS)
+  #ifndef __stdcall
+    #define __stdcall
+  #endif
+  #ifndef __cdecl
+    #define __cdecl
+  #endif
+  #ifndef __fastcall
+    #define __fastcall
+  #endif
+#endif
+#ifndef DL_IMPORT
+  #define DL_IMPORT(t) t
+#endif
+#ifndef DL_EXPORT
+  #define DL_EXPORT(t) t
+#endif
+#ifndef PY_LONG_LONG
+  #define PY_LONG_LONG LONG_LONG
+#endif
+#ifndef Py_HUGE_VAL
+  #define Py_HUGE_VAL HUGE_VAL
+#endif
+#ifdef PYPY_VERSION
+#define CYTHON_COMPILING_IN_PYPY 1
+#define CYTHON_COMPILING_IN_CPYTHON 0
+#else
+#define CYTHON_COMPILING_IN_PYPY 0
+#define CYTHON_COMPILING_IN_CPYTHON 1
+#endif
+#if CYTHON_COMPILING_IN_PYPY
+#define Py_OptimizeFlag 0
+#endif
+#if PY_VERSION_HEX < 0x02050000
+  typedef int Py_ssize_t;
+  #define PY_SSIZE_T_MAX INT_MAX
+  #define PY_SSIZE_T_MIN INT_MIN
+  #define PY_FORMAT_SIZE_T ""
+  #define CYTHON_FORMAT_SSIZE_T ""
+  #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
+  #define PyInt_AsSsize_t(o)   __Pyx_PyInt_As_int(o)
+  #define PyNumber_Index(o)    ((PyNumber_Check(o) && !PyFloat_Check(o)) ? PyNumber_Int(o) : \
+                                (PyErr_Format(PyExc_TypeError, \
+                                              "expected index value, got %.200s", Py_TYPE(o)->tp_name), \
+                                 (PyObject*)0))
+  #define __Pyx_PyIndex_Check(o) (PyNumber_Check(o) && !PyFloat_Check(o) && \
+                                  !PyComplex_Check(o))
+  #define PyIndex_Check __Pyx_PyIndex_Check
+  #define PyErr_WarnEx(category, message, stacklevel) PyErr_Warn(category, message)
+  #define __PYX_BUILD_PY_SSIZE_T "i"
+#else
+  #define __PYX_BUILD_PY_SSIZE_T "n"
+  #define CYTHON_FORMAT_SSIZE_T "z"
+  #define __Pyx_PyIndex_Check PyIndex_Check
+#endif
+#if PY_VERSION_HEX < 0x02060000
+  #define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt)
+  #define Py_TYPE(ob)   (((PyObject*)(ob))->ob_type)
+  #define Py_SIZE(ob)   (((PyVarObject*)(ob))->ob_size)
+  #define PyVarObject_HEAD_INIT(type, size) \
+          PyObject_HEAD_INIT(type) size,
+  #define PyType_Modified(t)
+  typedef struct {
+     void *buf;
+     PyObject *obj;
+     Py_ssize_t len;
+     Py_ssize_t itemsize;
+     int readonly;
+     int ndim;
+     char *format;
+     Py_ssize_t *shape;
+     Py_ssize_t *strides;
+     Py_ssize_t *suboffsets;
+     void *internal;
+  } Py_buffer;
+  #define PyBUF_SIMPLE 0
+  #define PyBUF_WRITABLE 0x0001
+  #define PyBUF_FORMAT 0x0004
+  #define PyBUF_ND 0x0008
+  #define PyBUF_STRIDES (0x0010 | PyBUF_ND)
+  #define PyBUF_C_CONTIGUOUS (0x0020 | PyBUF_STRIDES)
+  #define PyBUF_F_CONTIGUOUS (0x0040 | PyBUF_STRIDES)
+  #define PyBUF_ANY_CONTIGUOUS (0x0080 | PyBUF_STRIDES)
+  #define PyBUF_INDIRECT (0x0100 | PyBUF_STRIDES)
+  #define PyBUF_RECORDS (PyBUF_STRIDES | PyBUF_FORMAT | PyBUF_WRITABLE)
+  #define PyBUF_FULL (PyBUF_INDIRECT | PyBUF_FORMAT | PyBUF_WRITABLE)
+  typedef int (*getbufferproc)(PyObject *, Py_buffer *, int);
+  typedef void (*releasebufferproc)(PyObject *, Py_buffer *);
+#endif
+#if PY_MAJOR_VERSION < 3
+  #define __Pyx_BUILTIN_MODULE_NAME "__builtin__"
+  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
+          PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
+  #define __Pyx_DefaultClassType PyClass_Type
+#else
+  #define __Pyx_BUILTIN_MODULE_NAME "builtins"
+  #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) \
+          PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)
+  #define __Pyx_DefaultClassType PyType_Type
+#endif
+#if PY_VERSION_HEX < 0x02060000
+  #define PyUnicode_FromString(s) PyUnicode_Decode(s, strlen(s), "UTF-8", "strict")
+#endif
+#if PY_MAJOR_VERSION >= 3
+  #define Py_TPFLAGS_CHECKTYPES 0
+  #define Py_TPFLAGS_HAVE_INDEX 0
+#endif
+#if (PY_VERSION_HEX < 0x02060000) || (PY_MAJOR_VERSION >= 3)
+  #define Py_TPFLAGS_HAVE_NEWBUFFER 0
+#endif
+#if PY_VERSION_HEX < 0x02060000
+  #define Py_TPFLAGS_HAVE_VERSION_TAG 0
+#endif
+#if PY_VERSION_HEX < 0x02060000 && !defined(Py_TPFLAGS_IS_ABSTRACT)
+  #define Py_TPFLAGS_IS_ABSTRACT 0
+#endif
+#if PY_VERSION_HEX < 0x030400a1 && !defined(Py_TPFLAGS_HAVE_FINALIZE)
+  #define Py_TPFLAGS_HAVE_FINALIZE 0
+#endif
+#if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND)
+  #define CYTHON_PEP393_ENABLED 1
+  #define __Pyx_PyUnicode_READY(op)       (likely(PyUnicode_IS_READY(op)) ? \
+                                              0 : _PyUnicode_Ready((PyObject *)(op)))
+  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_LENGTH(u)
+  #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i)
+  #define __Pyx_PyUnicode_KIND(u)         PyUnicode_KIND(u)
+  #define __Pyx_PyUnicode_DATA(u)         PyUnicode_DATA(u)
+  #define __Pyx_PyUnicode_READ(k, d, i)   PyUnicode_READ(k, d, i)
+#else
+  #define CYTHON_PEP393_ENABLED 0
+  #define __Pyx_PyUnicode_READY(op)       (0)
+  #define __Pyx_PyUnicode_GET_LENGTH(u)   PyUnicode_GET_SIZE(u)
+  #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i]))
+  #define __Pyx_PyUnicode_KIND(u)         (sizeof(Py_UNICODE))
+  #define __Pyx_PyUnicode_DATA(u)         ((void*)PyUnicode_AS_UNICODE(u))
+  #define __Pyx_PyUnicode_READ(k, d, i)   ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i]))
+#endif
+#if CYTHON_COMPILING_IN_PYPY
+  #define __Pyx_PyUnicode_Concat(a, b)      PyNumber_Add(a, b)
+  #define __Pyx_PyUnicode_ConcatSafe(a, b)  PyNumber_Add(a, b)
+#else
+  #define __Pyx_PyUnicode_Concat(a, b)      PyUnicode_Concat(a, b)
+  #define __Pyx_PyUnicode_ConcatSafe(a, b)  ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ? \
+      PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
+#endif
+#define __Pyx_PyString_FormatSafe(a, b)  ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))
+#define __Pyx_PyUnicode_FormatSafe(a, b)  ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b))
+#if PY_MAJOR_VERSION >= 3
+  #define __Pyx_PyString_Format(a, b)  PyUnicode_Format(a, b)
+#else
+  #define __Pyx_PyString_Format(a, b)  PyString_Format(a, b)
+#endif
+#if PY_MAJOR_VERSION >= 3
+  #define PyBaseString_Type            PyUnicode_Type
+  #define PyStringObject               PyUnicodeObject
+  #define PyString_Type                PyUnicode_Type
+  #define PyString_Check               PyUnicode_Check
+  #define PyString_CheckExact          PyUnicode_CheckExact
+#endif
+#if PY_VERSION_HEX < 0x02060000
+  #define PyBytesObject                PyStringObject
+  #define PyBytes_Type                 PyString_Type
+  #define PyBytes_Check                PyString_Check
+  #define PyBytes_CheckExact           PyString_CheckExact
+  #define PyBytes_FromString           PyString_FromString
+  #define PyBytes_FromStringAndSize    PyString_FromStringAndSize
+  #define PyBytes_FromFormat           PyString_FromFormat
+  #define PyBytes_DecodeEscape         PyString_DecodeEscape
+  #define PyBytes_AsString             PyString_AsString
+  #define PyBytes_AsStringAndSize      PyString_AsStringAndSize
+  #define PyBytes_Size                 PyString_Size
+  #define PyBytes_AS_STRING            PyString_AS_STRING
+  #define PyBytes_GET_SIZE             PyString_GET_SIZE
+  #define PyBytes_Repr                 PyString_Repr
+  #define PyBytes_Concat               PyString_Concat
+  #define PyBytes_ConcatAndDel         PyString_ConcatAndDel
+#endif
+#if PY_MAJOR_VERSION >= 3
+  #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj)
+  #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj)
+#else
+  #define __Pyx_PyBaseString_Check(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj) || \
+                                         PyString_Check(obj) || PyUnicode_Check(obj))
+  #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj))
+#endif
+#if PY_VERSION_HEX < 0x02060000
+  #define PySet_Check(obj)             PyObject_TypeCheck(obj, &PySet_Type)
+  #define PyFrozenSet_Check(obj)       PyObject_TypeCheck(obj, &PyFrozenSet_Type)
+#endif
+#ifndef PySet_CheckExact
+  #define PySet_CheckExact(obj)        (Py_TYPE(obj) == &PySet_Type)
+#endif
+#define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type)
+#if PY_MAJOR_VERSION >= 3
+  #define PyIntObject                  PyLongObject
+  #define PyInt_Type                   PyLong_Type
+  #define PyInt_Check(op)              PyLong_Check(op)
+  #define PyInt_CheckExact(op)         PyLong_CheckExact(op)
+  #define PyInt_FromString             PyLong_FromString
+  #define PyInt_FromUnicode            PyLong_FromUnicode
+  #define PyInt_FromLong               PyLong_FromLong
+  #define PyInt_FromSize_t             PyLong_FromSize_t
+  #define PyInt_FromSsize_t            PyLong_FromSsize_t
+  #define PyInt_AsLong                 PyLong_AsLong
+  #define PyInt_AS_LONG                PyLong_AS_LONG
+  #define PyInt_AsSsize_t              PyLong_AsSsize_t
+  #define PyInt_AsUnsignedLongMask     PyLong_AsUnsignedLongMask
+  #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask
+  #define PyNumber_Int                 PyNumber_Long
+#endif
+#if PY_MAJOR_VERSION >= 3
+  #define PyBoolObject                 PyLongObject
+#endif
+#if PY_VERSION_HEX < 0x030200A4
+  typedef long Py_hash_t;
+  #define __Pyx_PyInt_FromHash_t PyInt_FromLong
+  #define __Pyx_PyInt_AsHash_t   PyInt_AsLong
+#else
+  #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t
+  #define __Pyx_PyInt_AsHash_t   PyInt_AsSsize_t
+#endif
+#if (PY_MAJOR_VERSION < 3) || (PY_VERSION_HEX >= 0x03010300)
+  #define __Pyx_PySequence_GetSlice(obj, a, b) PySequence_GetSlice(obj, a, b)
+  #define __Pyx_PySequence_SetSlice(obj, a, b, value) PySequence_SetSlice(obj, a, b, value)
+  #define __Pyx_PySequence_DelSlice(obj, a, b) PySequence_DelSlice(obj, a, b)
+#else
+  #define __Pyx_PySequence_GetSlice(obj, a, b) (unlikely(!(obj)) ? \
+        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), (PyObject*)0) : \
+        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_GetSlice(obj, a, b)) : \
+            (PyErr_Format(PyExc_TypeError, "'%.200s' object is unsliceable", (obj)->ob_type->tp_name), (PyObject*)0)))
+  #define __Pyx_PySequence_SetSlice(obj, a, b, value) (unlikely(!(obj)) ? \
+        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
+        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_SetSlice(obj, a, b, value)) : \
+            (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice assignment", (obj)->ob_type->tp_name), -1)))
+  #define __Pyx_PySequence_DelSlice(obj, a, b) (unlikely(!(obj)) ? \
+        (PyErr_SetString(PyExc_SystemError, "null argument to internal routine"), -1) : \
+        (likely((obj)->ob_type->tp_as_mapping) ? (PySequence_DelSlice(obj, a, b)) : \
+            (PyErr_Format(PyExc_TypeError, "'%.200s' object doesn't support slice deletion", (obj)->ob_type->tp_name), -1)))
+#endif
+#if PY_MAJOR_VERSION >= 3
+  #define PyMethod_New(func, self, klass) ((self) ? PyMethod_New(func, self) : PyInstanceMethod_New(func))
+#endif
+#if PY_VERSION_HEX < 0x02050000
+  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),((char *)(n)))
+  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),((char *)(n)),(a))
+  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),((char *)(n)))
+#else
+  #define __Pyx_GetAttrString(o,n)   PyObject_GetAttrString((o),(n))
+  #define __Pyx_SetAttrString(o,n,a) PyObject_SetAttrString((o),(n),(a))
+  #define __Pyx_DelAttrString(o,n)   PyObject_DelAttrString((o),(n))
+#endif
+#if PY_VERSION_HEX < 0x02050000
+  #define __Pyx_NAMESTR(n) ((char *)(n))
+  #define __Pyx_DOCSTR(n)  ((char *)(n))
+#else
+  #define __Pyx_NAMESTR(n) (n)
+  #define __Pyx_DOCSTR(n)  (n)
+#endif
+#ifndef CYTHON_INLINE
+  #if defined(__GNUC__)
+    #define CYTHON_INLINE __inline__
+  #elif defined(_MSC_VER)
+    #define CYTHON_INLINE __inline
+  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+    #define CYTHON_INLINE inline
+  #else
+    #define CYTHON_INLINE
+  #endif
+#endif
+#ifndef CYTHON_RESTRICT
+  #if defined(__GNUC__)
+    #define CYTHON_RESTRICT __restrict__
+  #elif defined(_MSC_VER) && _MSC_VER >= 1400
+    #define CYTHON_RESTRICT __restrict
+  #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+    #define CYTHON_RESTRICT restrict
+  #else
+    #define CYTHON_RESTRICT
+  #endif
+#endif
+#ifdef NAN
+#define __PYX_NAN() ((float) NAN)
+#else
+static CYTHON_INLINE float __PYX_NAN() {
+  /* Initialize NaN. The sign is irrelevant, an exponent with all bits 1 and
+   a nonzero mantissa means NaN. If the first bit in the mantissa is 1, it is
+   a quiet NaN. */
+  float value;
+  memset(&value, 0xFF, sizeof(value));
+  return value;
+}
+#endif
+
+
+#if PY_MAJOR_VERSION >= 3
+  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_TrueDivide(x,y)
+  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceTrueDivide(x,y)
+#else
+  #define __Pyx_PyNumber_Divide(x,y)         PyNumber_Divide(x,y)
+  #define __Pyx_PyNumber_InPlaceDivide(x,y)  PyNumber_InPlaceDivide(x,y)
+#endif
+
+#ifndef __PYX_EXTERN_C
+  #ifdef __cplusplus
+    #define __PYX_EXTERN_C extern "C"
+  #else
+    #define __PYX_EXTERN_C extern
+  #endif
+#endif
+
+#if defined(WIN32) || defined(MS_WINDOWS)
+#define _USE_MATH_DEFINES
+#endif
+#include <math.h>
+#define __PYX_HAVE___yaml
+#define __PYX_HAVE_API___yaml
+#include "_yaml.h"
+#ifdef _OPENMP
+#include <omp.h>
+#endif /* _OPENMP */
+
+#ifdef PYREX_WITHOUT_ASSERTIONS
+#define CYTHON_WITHOUT_ASSERTIONS
+#endif
+
+#ifndef CYTHON_UNUSED
+# if defined(__GNUC__)
+#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+#     define CYTHON_UNUSED __attribute__ ((__unused__))
+#   else
+#     define CYTHON_UNUSED
+#   endif
+# elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER))
+#   define CYTHON_UNUSED __attribute__ ((__unused__))
+# else
+#   define CYTHON_UNUSED
+# endif
+#endif
+typedef struct {PyObject **p; char *s; const Py_ssize_t n; const char* encoding;
+                const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; /*proto*/
+
+#define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0
+#define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT 0
+#define __PYX_DEFAULT_STRING_ENCODING ""
+#define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString
+#define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
+#define __Pyx_fits_Py_ssize_t(v, type, is_signed)  (    \
+    (sizeof(type) < sizeof(Py_ssize_t))  ||             \
+    (sizeof(type) > sizeof(Py_ssize_t) &&               \
+          likely(v < (type)PY_SSIZE_T_MAX ||            \
+                 v == (type)PY_SSIZE_T_MAX)  &&         \
+          (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||       \
+                                v == (type)PY_SSIZE_T_MIN)))  ||  \
+    (sizeof(type) == sizeof(Py_ssize_t) &&              \
+          (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||        \
+                               v == (type)PY_SSIZE_T_MAX)))  )
+static CYTHON_INLINE char* __Pyx_PyObject_AsString(PyObject*);
+static CYTHON_INLINE char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length);
+#define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s))
+#define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l)
+#define __Pyx_PyBytes_FromString        PyBytes_FromString
+#define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize
+static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(char*);
+#if PY_MAJOR_VERSION < 3
+    #define __Pyx_PyStr_FromString        __Pyx_PyBytes_FromString
+    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize
+#else
+    #define __Pyx_PyStr_FromString        __Pyx_PyUnicode_FromString
+    #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize
+#endif
+#define __Pyx_PyObject_AsSString(s)    ((signed char*) __Pyx_PyObject_AsString(s))
+#define __Pyx_PyObject_AsUString(s)    ((unsigned char*) __Pyx_PyObject_AsString(s))
+#define __Pyx_PyObject_FromUString(s)  __Pyx_PyObject_FromString((char*)s)
+#define __Pyx_PyBytes_FromUString(s)   __Pyx_PyBytes_FromString((char*)s)
+#define __Pyx_PyByteArray_FromUString(s)   __Pyx_PyByteArray_FromString((char*)s)
+#define __Pyx_PyStr_FromUString(s)     __Pyx_PyStr_FromString((char*)s)
+#define __Pyx_PyUnicode_FromUString(s) __Pyx_PyUnicode_FromString((char*)s)
+#if PY_MAJOR_VERSION < 3
+static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u)
+{
+    const Py_UNICODE *u_end = u;
+    while (*u_end++) ;
+    return u_end - u - 1;
+}
+#else
+#define __Pyx_Py_UNICODE_strlen Py_UNICODE_strlen
+#endif
+#define __Pyx_PyUnicode_FromUnicode(u)       PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u))
+#define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode
+#define __Pyx_PyUnicode_AsUnicode            PyUnicode_AsUnicode
+#define __Pyx_Owned_Py_None(b) (Py_INCREF(Py_None), Py_None)
+#define __Pyx_PyBool_FromLong(b) ((b) ? (Py_INCREF(Py_True), Py_True) : (Py_INCREF(Py_False), Py_False))
+static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*);
+static CYTHON_INLINE PyObject* __Pyx_PyNumber_Int(PyObject* x);
+static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*);
+static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t);
+#if CYTHON_COMPILING_IN_CPYTHON
+#define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x))
+#else
+#define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x)
+#endif
+#define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x))
+#if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII
+static int __Pyx_sys_getdefaultencoding_not_ascii;
+static int __Pyx_init_sys_getdefaultencoding_params(void) {
+    PyObject* sys = NULL;
+    PyObject* default_encoding = NULL;
+    PyObject* ascii_chars_u = NULL;
+    PyObject* ascii_chars_b = NULL;
+    sys = PyImport_ImportModule("sys");
+    if (sys == NULL) goto bad;
+    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
+    if (default_encoding == NULL) goto bad;
+    if (strcmp(PyBytes_AsString(default_encoding), "ascii") == 0) {
+        __Pyx_sys_getdefaultencoding_not_ascii = 0;
+    } else {
+        const char* default_encoding_c = PyBytes_AS_STRING(default_encoding);
+        char ascii_chars[128];
+        int c;
+        for (c = 0; c < 128; c++) {
+            ascii_chars[c] = c;
+        }
+        __Pyx_sys_getdefaultencoding_not_ascii = 1;
+        ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL);
+        if (ascii_chars_u == NULL) goto bad;
+        ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL);
+        if (ascii_chars_b == NULL || strncmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) {
+            PyErr_Format(
+                PyExc_ValueError,
+                "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.",
+                default_encoding_c);
+            goto bad;
+        }
+    }
+    Py_XDECREF(sys);
+    Py_XDECREF(default_encoding);
+    Py_XDECREF(ascii_chars_u);
+    Py_XDECREF(ascii_chars_b);
+    return 0;
+bad:
+    Py_XDECREF(sys);
+    Py_XDECREF(default_encoding);
+    Py_XDECREF(ascii_chars_u);
+    Py_XDECREF(ascii_chars_b);
+    return -1;
+}
+#endif
+#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3
+#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL)
+#else
+#define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL)
+#if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT
+static char* __PYX_DEFAULT_STRING_ENCODING;
+static int __Pyx_init_sys_getdefaultencoding_params(void) {
+    PyObject* sys = NULL;
+    PyObject* default_encoding = NULL;
+    char* default_encoding_c;
+    sys = PyImport_ImportModule("sys");
+    if (sys == NULL) goto bad;
+    default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL);
+    if (default_encoding == NULL) goto bad;
+    default_encoding_c = PyBytes_AS_STRING(default_encoding);
+    __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c));
+    strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c);
+    Py_DECREF(sys);
+    Py_DECREF(default_encoding);
+    return 0;
+bad:
+    Py_XDECREF(sys);
+    Py_XDECREF(default_encoding);
+    return -1;
+}
+#endif
+#endif
+
+
+#ifdef __GNUC__
+  /* Test for GCC > 2.95 */
+  #if __GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))
+    #define likely(x)   __builtin_expect(!!(x), 1)
+    #define unlikely(x) __builtin_expect(!!(x), 0)
+  #else /* __GNUC__ > 2 ... */
+    #define likely(x)   (x)
+    #define unlikely(x) (x)
+  #endif /* __GNUC__ > 2 ... */
+#else /* __GNUC__ */
+  #define likely(x)   (x)
+  #define unlikely(x) (x)
+#endif /* __GNUC__ */
+
+static PyObject *__pyx_m;
+static PyObject *__pyx_d;
+static PyObject *__pyx_b;
+static PyObject *__pyx_empty_tuple;
+static PyObject *__pyx_empty_bytes;
+static int __pyx_lineno;
+static int __pyx_clineno = 0;
+static const char * __pyx_cfilenm= __FILE__;
+static const char *__pyx_filename;
+
+
+static const char *__pyx_f[] = {
+  "_yaml.pyx",
+};
+
+/*--- Type declarations ---*/
+struct __pyx_obj_5_yaml_Mark;
+struct __pyx_obj_5_yaml_CParser;
+struct __pyx_obj_5_yaml_CEmitter;
+
+/* "_yaml.pyx":64
+ * MappingNode = yaml.nodes.MappingNode
+ * 
+ * cdef class Mark:             # <<<<<<<<<<<<<<
+ *     cdef readonly object name
+ *     cdef readonly int index
+ */
+struct __pyx_obj_5_yaml_Mark {
+  PyObject_HEAD
+  PyObject *name;
+  int index;
+  int line;
+  int column;
+  PyObject *buffer;
+  PyObject *pointer;
+};
+
+
+/* "_yaml.pyx":247
+ * #        self.style = style
+ * 
+ * cdef class CParser:             # <<<<<<<<<<<<<<
+ * 
+ *     cdef yaml_parser_t parser
+ */
+struct __pyx_obj_5_yaml_CParser {
+  PyObject_HEAD
+  struct __pyx_vtabstruct_5_yaml_CParser *__pyx_vtab;
+  yaml_parser_t parser;
+  yaml_event_t parsed_event;
+  PyObject *stream;
+  PyObject *stream_name;
+  PyObject *current_token;
+  PyObject *current_event;
+  PyObject *anchors;
+  PyObject *stream_cache;
+  int stream_cache_len;
+  int stream_cache_pos;
+  int unicode_source;
+};
+
+
+/* "_yaml.pyx":935
+ *     return 1
+ * 
+ * cdef class CEmitter:             # <<<<<<<<<<<<<<
+ * 
+ *     cdef yaml_emitter_t emitter
+ */
+struct __pyx_obj_5_yaml_CEmitter {
+  PyObject_HEAD
+  struct __pyx_vtabstruct_5_yaml_CEmitter *__pyx_vtab;
+  yaml_emitter_t emitter;
+  PyObject *stream;
+  int document_start_implicit;
+  int document_end_implicit;
+  PyObject *use_version;
+  PyObject *use_tags;
+  PyObject *serialized_nodes;
+  PyObject *anchors;
+  int last_alias_id;
+  int closed;
+  int dump_unicode;
+  PyObject *use_encoding;
+};
+
+
+
+/* "_yaml.pyx":247
+ * #        self.style = style
+ * 
+ * cdef class CParser:             # <<<<<<<<<<<<<<
+ * 
+ *     cdef yaml_parser_t parser
+ */
+
+struct __pyx_vtabstruct_5_yaml_CParser {
+  PyObject *(*_parser_error)(struct __pyx_obj_5_yaml_CParser *);
+  PyObject *(*_scan)(struct __pyx_obj_5_yaml_CParser *);
+  PyObject *(*_token_to_object)(struct __pyx_obj_5_yaml_CParser *, yaml_token_t *);
+  PyObject *(*_parse)(struct __pyx_obj_5_yaml_CParser *);
+  PyObject *(*_event_to_object)(struct __pyx_obj_5_yaml_CParser *, yaml_event_t *);
+  PyObject *(*_compose_document)(struct __pyx_obj_5_yaml_CParser *);
+  PyObject *(*_compose_node)(struct __pyx_obj_5_yaml_CParser *, PyObject *, PyObject *);
+  PyObject *(*_compose_scalar_node)(struct __pyx_obj_5_yaml_CParser *, PyObject *);
+  PyObject *(*_compose_sequence_node)(struct __pyx_obj_5_yaml_CParser *, PyObject *);
+  PyObject *(*_compose_mapping_node)(struct __pyx_obj_5_yaml_CParser *, PyObject *);
+  int (*_parse_next_event)(struct __pyx_obj_5_yaml_CParser *);
+};
+static struct __pyx_vtabstruct_5_yaml_CParser *__pyx_vtabptr_5_yaml_CParser;
+
+
+/* "_yaml.pyx":935
+ *     return 1
+ * 
+ * cdef class CEmitter:             # <<<<<<<<<<<<<<
+ * 
+ *     cdef yaml_emitter_t emitter
+ */
+
+struct __pyx_vtabstruct_5_yaml_CEmitter {
+  PyObject *(*_emitter_error)(struct __pyx_obj_5_yaml_CEmitter *);
+  int (*_object_to_event)(struct __pyx_obj_5_yaml_CEmitter *, PyObject *, yaml_event_t *);
+  int (*_anchor_node)(struct __pyx_obj_5_yaml_CEmitter *, PyObject *);
+  int (*_serialize_node)(struct __pyx_obj_5_yaml_CEmitter *, PyObject *, PyObject *, PyObject *);
+};
+static struct __pyx_vtabstruct_5_yaml_CEmitter *__pyx_vtabptr_5_yaml_CEmitter;
+#ifndef CYTHON_REFNANNY
+  #define CYTHON_REFNANNY 0
+#endif
+#if CYTHON_REFNANNY
+  typedef struct {
+    void (*INCREF)(void*, PyObject*, int);
+    void (*DECREF)(void*, PyObject*, int);
+    void (*GOTREF)(void*, PyObject*, int);
+    void (*GIVEREF)(void*, PyObject*, int);
+    void* (*SetupContext)(const char*, int, const char*);
+    void (*FinishContext)(void**);
+  } __Pyx_RefNannyAPIStruct;
+  static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL;
+  static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); /*proto*/
+  #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL;
+#ifdef WITH_THREAD
+  #define __Pyx_RefNannySetupContext(name, acquire_gil) \
+          if (acquire_gil) { \
+              PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure(); \
+              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \
+              PyGILState_Release(__pyx_gilstate_save); \
+          } else { \
+              __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__); \
+          }
+#else
+  #define __Pyx_RefNannySetupContext(name, acquire_gil) \
+          __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__)
+#endif
+  #define __Pyx_RefNannyFinishContext() \
+          __Pyx_RefNanny->FinishContext(&__pyx_refnanny)
+  #define __Pyx_INCREF(r)  __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
+  #define __Pyx_DECREF(r)  __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
+  #define __Pyx_GOTREF(r)  __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
+  #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__)
+  #define __Pyx_XINCREF(r)  do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0)
+  #define __Pyx_XDECREF(r)  do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0)
+  #define __Pyx_XGOTREF(r)  do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0)
+  #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0)
+#else
+  #define __Pyx_RefNannyDeclarations
+  #define __Pyx_RefNannySetupContext(name, acquire_gil)
+  #define __Pyx_RefNannyFinishContext()
+  #define __Pyx_INCREF(r) Py_INCREF(r)
+  #define __Pyx_DECREF(r) Py_DECREF(r)
+  #define __Pyx_GOTREF(r)
+  #define __Pyx_GIVEREF(r)
+  #define __Pyx_XINCREF(r) Py_XINCREF(r)
+  #define __Pyx_XDECREF(r) Py_XDECREF(r)
+  #define __Pyx_XGOTREF(r)
+  #define __Pyx_XGIVEREF(r)
+#endif /* CYTHON_REFNANNY */
+#define __Pyx_XDECREF_SET(r, v) do {                            \
+        PyObject *tmp = (PyObject *) r;                         \
+        r = v; __Pyx_XDECREF(tmp);                              \
+    } while (0)
+#define __Pyx_DECREF_SET(r, v) do {                             \
+        PyObject *tmp = (PyObject *) r;                         \
+        r = v; __Pyx_DECREF(tmp);                               \
+    } while (0)
+#define __Pyx_CLEAR(r)    do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0)
+#define __Pyx_XCLEAR(r)   do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0)
+
+#if CYTHON_COMPILING_IN_CPYTHON
+static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) {
+    PyTypeObject* tp = Py_TYPE(obj);
+    if (likely(tp->tp_getattro))
+        return tp->tp_getattro(obj, attr_name);
+#if PY_MAJOR_VERSION < 3
+    if (likely(tp->tp_getattr))
+        return tp->tp_getattr(obj, PyString_AS_STRING(attr_name));
+#endif
+    return PyObject_GetAttr(obj, attr_name);
+}
+#else
+#define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n)
+#endif
+
+static PyObject *__Pyx_GetBuiltinName(PyObject *name); /*proto*/
+
+static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact,
+    Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /*proto*/
+
+static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /*proto*/
+
+static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[], \
+    PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, \
+    const char* function_name); /*proto*/
+
+static CYTHON_INLINE void __Pyx_ExceptionSave(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
+static void __Pyx_ExceptionReset(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
+
+static int __Pyx_GetException(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
+
+#if CYTHON_COMPILING_IN_CPYTHON
+static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); /*proto*/
+#else
+#define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw)
+#endif
+
+static CYTHON_INLINE void __Pyx_ErrRestore(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
+static CYTHON_INLINE void __Pyx_ErrFetch(PyObject **type, PyObject **value, PyObject **tb); /*proto*/
+
+static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /*proto*/
+
+static CYTHON_INLINE PyObject *__Pyx_GetModuleGlobalName(PyObject *name); /*proto*/
+
+static CYTHON_INLINE int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); /*proto*/
+
+static CYTHON_INLINE int __Pyx_PySequence_Contains(PyObject* item, PyObject* seq, int eq) {
+    int result = PySequence_Contains(seq, item);
+    return unlikely(result < 0) ? result : (result == (eq == Py_EQ));
+}
+
+static CYTHON_INLINE void __Pyx_RaiseUnboundLocalError(const char *varname);
+
+#if CYTHON_COMPILING_IN_CPYTHON
+static CYTHON_INLINE int __Pyx_PyList_Append(PyObject* list, PyObject* x) {
+    PyListObject* L = (PyListObject*) list;
+    Py_ssize_t len = Py_SIZE(list);
+    if (likely(L->allocated > len) & likely(len > (L->allocated >> 1))) {
+        Py_INCREF(x);
+        PyList_SET_ITEM(list, len, x);
+        Py_SIZE(list) = len+1;
+        return 0;
+    }
+    return PyList_Append(list, x);
+}
+#else
+#define __Pyx_PyList_Append(L,x) PyList_Append(L,x)
+#endif
+
+#if CYTHON_COMPILING_IN_CPYTHON
+#define __Pyx_PyObject_DelAttrStr(o,n) __Pyx_PyObject_SetAttrStr(o,n,NULL)
+static CYTHON_INLINE int __Pyx_PyObject_SetAttrStr(PyObject* obj, PyObject* attr_name, PyObject* value) {
+    PyTypeObject* tp = Py_TYPE(obj);
+    if (likely(tp->tp_setattro))
+        return tp->tp_setattro(obj, attr_name, value);
+#if PY_MAJOR_VERSION < 3
+    if (likely(tp->tp_setattr))
+        return tp->tp_setattr(obj, PyString_AS_STRING(attr_name), value);
+#endif
+    return PyObject_SetAttr(obj, attr_name, value);
+}
+#else
+#define __Pyx_PyObject_DelAttrStr(o,n)   PyObject_DelAttr(o,n)
+#define __Pyx_PyObject_SetAttrStr(o,n,v) PyObject_SetAttr(o,n,v)
+#endif
+
+static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /*proto*/
+
+static CYTHON_INLINE PyObject *__Pyx_GetAttr3(PyObject *, PyObject *, PyObject *); /*proto*/
+
+#include <string.h>
+
+static CYTHON_INLINE int __Pyx_PyBytes_Equals(PyObject* s1, PyObject* s2, int equals); /*proto*/
+
+static CYTHON_INLINE int __Pyx_PyUnicode_Equals(PyObject* s1, PyObject* s2, int equals); /*proto*/
+
+#if PY_MAJOR_VERSION >= 3
+#define __Pyx_PyString_Equals __Pyx_PyUnicode_Equals
+#else
+#define __Pyx_PyString_Equals __Pyx_PyBytes_Equals
+#endif
+
+#define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
+    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
+    __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) : \
+    (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) : \
+               __Pyx_GetItemInt_Generic(o, to_py_func(i))))
+#define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
+    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
+    __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) : \
+    (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL))
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i,
+                                                              int wraparound, int boundscheck);
+#define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck) \
+    (__Pyx_fits_Py_ssize_t(i, type, is_signed) ? \
+    __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) : \
+    (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL))
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i,
+                                                              int wraparound, int boundscheck);
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j);
+static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i,
+                                                     int is_list, int wraparound, int boundscheck);
+
+static CYTHON_INLINE void __Pyx_RaiseTooManyValuesError(Py_ssize_t expected);
+
+static CYTHON_INLINE void __Pyx_RaiseNeedMoreValuesError(Py_ssize_t index);
+
+static CYTHON_INLINE int __Pyx_IterFinish(void); /*proto*/
+
+static int __Pyx_IternextUnpackEndCheck(PyObject *retval, Py_ssize_t expected); /*proto*/
+
+static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
+
+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_int(int value);
+
+static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list, int level); /*proto*/
+
+static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *);
+
+static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value);
+
+static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *);
+
+static int __Pyx_check_binary_version(void);
+
+typedef struct {
+    int code_line;
+    PyCodeObject* code_object;
+} __Pyx_CodeObjectCacheEntry;
+struct __Pyx_CodeObjectCache {
+    int count;
+    int max_count;
+    __Pyx_CodeObjectCacheEntry* entries;
+};
+static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL};
+static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line);
+static PyCodeObject *__pyx_find_code_object(int code_line);
+static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object);
+
+static void __Pyx_AddTraceback(const char *funcname, int c_line,
+                               int py_line, const char *filename); /*proto*/
+
+static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
+
+
+/* Module declarations from '_yaml' */
+static PyTypeObject *__pyx_ptype_5_yaml_Mark = 0;
+static PyTypeObject *__pyx_ptype_5_yaml_CParser = 0;
+static PyTypeObject *__pyx_ptype_5_yaml_CEmitter = 0;
+static int __pyx_f_5_yaml_input_handler(void *, char *, int, int *); /*proto*/
+static int __pyx_f_5_yaml_output_handler(void *, char *, int); /*proto*/
+#define __Pyx_MODULE_NAME "_yaml"
+int __pyx_module_is_main__yaml = 0;
+
+/* Implementation of '_yaml' */
+static PyObject *__pyx_builtin_MemoryError;
+static PyObject *__pyx_builtin_AttributeError;
+static PyObject *__pyx_builtin_TypeError;
+static PyObject *__pyx_builtin_ValueError;
+static PyObject *__pyx_pf_5_yaml_get_version_string(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_2get_version(CYTHON_UNUSED PyObject *__pyx_self); /* proto */
+static int __pyx_pf_5_yaml_4Mark___init__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self, PyObject *__pyx_v_name, int __pyx_v_index, int __pyx_v_line, int __pyx_v_column, PyObject *__pyx_v_buffer, PyObject *__pyx_v_pointer); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_2get_snippet(CYTHON_UNUSED struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_4__str__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_4name___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_5index___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_4line___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_6column___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_6buffer___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_4Mark_7pointer___get__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self); /* proto */
+static int __pyx_pf_5_yaml_7CParser___init__(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_stream); /* proto */
+static void __pyx_pf_5_yaml_7CParser_2__dealloc__(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_4dispose(CYTHON_UNUSED struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_6raw_scan(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_8get_token(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_10peek_token(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_12check_token(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_choices); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_14raw_parse(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_16get_event(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_18peek_event(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_20check_event(struct __pyx_obj_5_yaml_CParser *__pyx_v_self, PyObject *__pyx_v_choices); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_22check_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_24get_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_7CParser_26get_single_node(struct __pyx_obj_5_yaml_CParser *__pyx_v_self); /* proto */
+static int __pyx_pf_5_yaml_8CEmitter___init__(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_stream, PyObject *__pyx_v_canonical, PyObject *__pyx_v_indent, PyObject *__pyx_v_width, PyObject *__pyx_v_allow_unicode, PyObject *__pyx_v_line_break, PyObject *__pyx_v_encoding, PyObject *__pyx_v_explicit_start, PyObject *__pyx_v_explicit_end, PyObject *__pyx_v_version, PyObject *__pyx_v_tags); /* proto */
+static void __pyx_pf_5_yaml_8CEmitter_2__dealloc__(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_8CEmitter_4dispose(CYTHON_UNUSED struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_8CEmitter_6emit(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_event_object); /* proto */
+static PyObject *__pyx_pf_5_yaml_8CEmitter_8open(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_8CEmitter_10close(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self); /* proto */
+static PyObject *__pyx_pf_5_yaml_8CEmitter_12serialize(struct __pyx_obj_5_yaml_CEmitter *__pyx_v_self, PyObject *__pyx_v_node); /* proto */
+static PyObject *__pyx_tp_new_5_yaml_Mark(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_5_yaml_CParser(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static PyObject *__pyx_tp_new_5_yaml_CEmitter(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/
+static char __pyx_k__3[] = "?";
+static char __pyx_k__6[] = "";
+static char __pyx_k__7[] = "'";
+static char __pyx_k__8[] = "\"";
+static char __pyx_k__9[] = "|";
+static char __pyx_k_TAG[] = "TAG";
+static char __pyx_k__10[] = ">";
+static char __pyx_k__17[] = "\r";
+static char __pyx_k__18[] = "\n";
+static char __pyx_k__19[] = "\r\n";
+static char __pyx_k_tag[] = "tag";
+static char __pyx_k_YAML[] = "YAML";
+static char __pyx_k_file[] = "<file>";
+static char __pyx_k_line[] = "line";
+static char __pyx_k_main[] = "__main__";
+static char __pyx_k_name[] = "name";
+static char __pyx_k_read[] = "read";
+static char __pyx_k_tags[] = "tags";
+static char __pyx_k_test[] = "__test__";
+static char __pyx_k_yaml[] = "yaml";
+static char __pyx_k_class[] = "__class__";
+static char __pyx_k_error[] = "error";
+static char __pyx_k_index[] = "index";
+static char __pyx_k_major[] = "major";
+static char __pyx_k_minor[] = "minor";
+static char __pyx_k_nodes[] = "nodes";
+static char __pyx_k_patch[] = "patch";
+static char __pyx_k_style[] = "style";
+static char __pyx_k_utf_8[] = "utf-8";
+static char __pyx_k_value[] = "value";
+static char __pyx_k_width[] = "width";
+static char __pyx_k_write[] = "write";
+static char __pyx_k_anchor[] = "anchor";
+static char __pyx_k_buffer[] = "buffer";
+static char __pyx_k_column[] = "column";
+static char __pyx_k_events[] = "events";
+static char __pyx_k_id_03d[] = "id%03d";
+static char __pyx_k_import[] = "__import__";
+static char __pyx_k_indent[] = "indent";
+static char __pyx_k_parser[] = "parser";
+static char __pyx_k_reader[] = "reader";
+static char __pyx_k_stream[] = "stream";
+static char __pyx_k_strict[] = "strict";
+static char __pyx_k_tokens[] = "tokens";
+static char __pyx_k_yaml_2[] = "_yaml";
+static char __pyx_k_emitter[] = "emitter";
+static char __pyx_k_pointer[] = "pointer";
+static char __pyx_k_resolve[] = "resolve";
+static char __pyx_k_scanner[] = "scanner";
+static char __pyx_k_version[] = "version";
+static char __pyx_k_KeyToken[] = "KeyToken";
+static char __pyx_k_TagToken[] = "TagToken";
+static char __pyx_k_composer[] = "composer";
+static char __pyx_k_encoding[] = "encoding";
+static char __pyx_k_end_mark[] = "end_mark";
+static char __pyx_k_explicit[] = "explicit";
+static char __pyx_k_implicit[] = "implicit";
+static char __pyx_k_TypeError[] = "TypeError";
+static char __pyx_k_YAMLError[] = "YAMLError";
+static char __pyx_k_canonical[] = "canonical";
+static char __pyx_k_utf_16_be[] = "utf-16-be";
+static char __pyx_k_utf_16_le[] = "utf-16-le";
+static char __pyx_k_AliasEvent[] = "AliasEvent";
+static char __pyx_k_AliasToken[] = "AliasToken";
+static char __pyx_k_ScalarNode[] = "ScalarNode";
+static char __pyx_k_ValueError[] = "ValueError";
+static char __pyx_k_ValueToken[] = "ValueToken";
+static char __pyx_k_flow_style[] = "flow_style";
+static char __pyx_k_line_break[] = "line_break";
+static char __pyx_k_pyx_vtable[] = "__pyx_vtable__";
+static char __pyx_k_serializer[] = "serializer";
+static char __pyx_k_start_mark[] = "start_mark";
+static char __pyx_k_AnchorToken[] = "AnchorToken";
+static char __pyx_k_MappingNode[] = "MappingNode";
+static char __pyx_k_MemoryError[] = "MemoryError";
+static char __pyx_k_ParserError[] = "ParserError";
+static char __pyx_k_ReaderError[] = "ReaderError";
+static char __pyx_k_ScalarEvent[] = "ScalarEvent";
+static char __pyx_k_ScalarToken[] = "ScalarToken";
+static char __pyx_k_byte_string[] = "<byte string>";
+static char __pyx_k_constructor[] = "constructor";
+static char __pyx_k_get_version[] = "get_version";
+static char __pyx_k_representer[] = "representer";
+static char __pyx_k_EmitterError[] = "EmitterError";
+static char __pyx_k_ScannerError[] = "ScannerError";
+static char __pyx_k_SequenceNode[] = "SequenceNode";
+static char __pyx_k_explicit_end[] = "explicit_end";
+static char __pyx_k_BlockEndToken[] = "BlockEndToken";
+static char __pyx_k_ComposerError[] = "ComposerError";
+static char __pyx_k_allow_unicode[] = "allow_unicode";
+static char __pyx_k_too_many_tags[] = "too many tags";
+static char __pyx_k_AttributeError[] = "AttributeError";
+static char __pyx_k_DirectiveToken[] = "DirectiveToken";
+static char __pyx_k_FlowEntryToken[] = "FlowEntryToken";
+static char __pyx_k_StreamEndEvent[] = "StreamEndEvent";
+static char __pyx_k_StreamEndToken[] = "StreamEndToken";
+static char __pyx_k_explicit_start[] = "explicit_start";
+static char __pyx_k_unicode_string[] = "<unicode string>";
+static char __pyx_k_BlockEntryToken[] = "BlockEntryToken";
+static char __pyx_k_MappingEndEvent[] = "MappingEndEvent";
+static char __pyx_k_SerializerError[] = "SerializerError";
+static char __pyx_k_ascend_resolver[] = "ascend_resolver";
+static char __pyx_k_invalid_event_s[] = "invalid event %s";
+static char __pyx_k_no_parser_error[] = "no parser error";
+static char __pyx_k_ConstructorError[] = "ConstructorError";
+static char __pyx_k_DocumentEndEvent[] = "DocumentEndEvent";
+static char __pyx_k_DocumentEndToken[] = "DocumentEndToken";
+static char __pyx_k_RepresenterError[] = "RepresenterError";
+static char __pyx_k_SequenceEndEvent[] = "SequenceEndEvent";
+static char __pyx_k_StreamStartEvent[] = "StreamStartEvent";
+static char __pyx_k_StreamStartToken[] = "StreamStartToken";
+static char __pyx_k_descend_resolver[] = "descend_resolver";
+static char __pyx_k_no_emitter_error[] = "no emitter error";
+static char __pyx_k_second_occurence[] = "second occurence";
+static char __pyx_k_MappingStartEvent[] = "MappingStartEvent";
+static char __pyx_k_DocumentStartEvent[] = "DocumentStartEvent";
+static char __pyx_k_DocumentStartToken[] = "DocumentStartToken";
+static char __pyx_k_SequenceStartEvent[] = "SequenceStartEvent";
+static char __pyx_k_get_version_string[] = "get_version_string";
+static char __pyx_k_unknown_event_type[] = "unknown event type";
+static char __pyx_k_unknown_token_type[] = "unknown token type";
+static char __pyx_k_FlowMappingEndToken[] = "FlowMappingEndToken";
+static char __pyx_k_FlowSequenceEndToken[] = "FlowSequenceEndToken";
+static char __pyx_k_in_s_line_d_column_d[] = "  in \"%s\", line %d, column %d";
+static char __pyx_k_serializer_is_closed[] = "serializer is closed";
+static char __pyx_k_tag_must_be_a_string[] = "tag must be a string";
+static char __pyx_k_FlowMappingStartToken[] = "FlowMappingStartToken";
+static char __pyx_k_found_undefined_alias[] = "found undefined alias";
+static char __pyx_k_BlockMappingStartToken[] = "BlockMappingStartToken";
+static char __pyx_k_FlowSequenceStartToken[] = "FlowSequenceStartToken";
+static char __pyx_k_value_must_be_a_string[] = "value must be a string";
+static char __pyx_k_BlockSequenceStartToken[] = "BlockSequenceStartToken";
+static char __pyx_k_anchor_must_be_a_string[] = "anchor must be a string";
+static char __pyx_k_serializer_is_not_opened[] = "serializer is not opened";
+static char __pyx_k_a_string_value_is_expected[] = "a string value is expected";
+static char __pyx_k_but_found_another_document[] = "but found another document";
+static char __pyx_k_tag_handle_must_be_a_string[] = "tag handle must be a string";
+static char __pyx_k_tag_prefix_must_be_a_string[] = "tag prefix must be a string";
+static char __pyx_k_serializer_is_already_opened[] = "serializer is already opened";
+static char __pyx_k_root_src_pyyaml_ext__yaml_pyx[] = "/root/src/pyyaml/ext/_yaml.pyx";
+static char __pyx_k_a_string_or_stream_input_is_requ[] = "a string or stream input is required";
+static char __pyx_k_expected_a_single_document_in_th[] = "expected a single document in the stream";
+static char __pyx_k_found_duplicate_anchor_first_occ[] = "found duplicate anchor; first occurence";
+static PyObject *__pyx_n_s_AliasEvent;
+static PyObject *__pyx_n_s_AliasToken;
+static PyObject *__pyx_n_s_AnchorToken;
+static PyObject *__pyx_n_s_AttributeError;
+static PyObject *__pyx_n_s_BlockEndToken;
+static PyObject *__pyx_n_s_BlockEntryToken;
+static PyObject *__pyx_n_s_BlockMappingStartToken;
+static PyObject *__pyx_n_s_BlockSequenceStartToken;
+static PyObject *__pyx_n_s_ComposerError;
+static PyObject *__pyx_n_s_ConstructorError;
+static PyObject *__pyx_n_s_DirectiveToken;
+static PyObject *__pyx_n_s_DocumentEndEvent;
+static PyObject *__pyx_n_s_DocumentEndToken;
+static PyObject *__pyx_n_s_DocumentStartEvent;
+static PyObject *__pyx_n_s_DocumentStartToken;
+static PyObject *__pyx_n_s_EmitterError;
+static PyObject *__pyx_n_s_FlowEntryToken;
+static PyObject *__pyx_n_s_FlowMappingEndToken;
+static PyObject *__pyx_n_s_FlowMappingStartToken;
+static PyObject *__pyx_n_s_FlowSequenceEndToken;
+static PyObject *__pyx_n_s_FlowSequenceStartToken;
+static PyObject *__pyx_n_s_KeyToken;
+static PyObject *__pyx_n_s_MappingEndEvent;
+static PyObject *__pyx_n_s_MappingNode;
+static PyObject *__pyx_n_s_MappingStartEvent;
+static PyObject *__pyx_n_s_MemoryError;
+static PyObject *__pyx_n_s_ParserError;
+static PyObject *__pyx_n_s_ReaderError;
+static PyObject *__pyx_n_s_RepresenterError;
+static PyObject *__pyx_n_s_ScalarEvent;
+static PyObject *__pyx_n_s_ScalarNode;
+static PyObject *__pyx_n_s_ScalarToken;
+static PyObject *__pyx_n_s_ScannerError;
+static PyObject *__pyx_n_s_SequenceEndEvent;
+static PyObject *__pyx_n_s_SequenceNode;
+static PyObject *__pyx_n_s_SequenceStartEvent;
+static PyObject *__pyx_n_s_SerializerError;
+static PyObject *__pyx_n_s_StreamEndEvent;
+static PyObject *__pyx_n_s_StreamEndToken;
+static PyObject *__pyx_n_s_StreamStartEvent;
+static PyObject *__pyx_n_s_StreamStartToken;
+static PyObject *__pyx_n_u_TAG;
+static PyObject *__pyx_n_s_TagToken;
+static PyObject *__pyx_n_s_TypeError;
+static PyObject *__pyx_n_s_ValueError;
+static PyObject *__pyx_n_s_ValueToken;
+static PyObject *__pyx_n_u_YAML;
+static PyObject *__pyx_n_s_YAMLError;
+static PyObject *__pyx_kp_s__10;
+static PyObject *__pyx_kp_u__10;
+static PyObject *__pyx_kp_s__17;
+static PyObject *__pyx_kp_s__18;
+static PyObject *__pyx_kp_s__19;
+static PyObject *__pyx_kp_s__3;
+static PyObject *__pyx_kp_u__3;
+static PyObject *__pyx_kp_u__6;
+static PyObject *__pyx_kp_s__7;
+static PyObject *__pyx_kp_u__7;
+static PyObject *__pyx_kp_s__8;
+static PyObject *__pyx_kp_u__8;
+static PyObject *__pyx_kp_s__9;
+static PyObject *__pyx_kp_u__9;
+static PyObject *__pyx_kp_s_a_string_or_stream_input_is_requ;
+static PyObject *__pyx_kp_u_a_string_or_stream_input_is_requ;
+static PyObject *__pyx_kp_s_a_string_value_is_expected;
+static PyObject *__pyx_kp_u_a_string_value_is_expected;
+static PyObject *__pyx_n_s_allow_unicode;
+static PyObject *__pyx_n_s_anchor;
+static PyObject *__pyx_kp_s_anchor_must_be_a_string;
+static PyObject *__pyx_kp_u_anchor_must_be_a_string;
+static PyObject *__pyx_n_s_ascend_resolver;
+static PyObject *__pyx_n_s_buffer;
+static PyObject *__pyx_kp_s_but_found_another_document;
+static PyObject *__pyx_kp_u_but_found_another_document;
+static PyObject *__pyx_kp_s_byte_string;
+static PyObject *__pyx_kp_u_byte_string;
+static PyObject *__pyx_n_s_canonical;
+static PyObject *__pyx_n_s_class;
+static PyObject *__pyx_n_s_column;
+static PyObject *__pyx_n_s_composer;
+static PyObject *__pyx_n_s_constructor;
+static PyObject *__pyx_n_s_descend_resolver;
+static PyObject *__pyx_n_s_emitter;
+static PyObject *__pyx_n_s_encoding;
+static PyObject *__pyx_n_u_encoding;
+static PyObject *__pyx_n_s_end_mark;
+static PyObject *__pyx_n_s_error;
+static PyObject *__pyx_n_s_events;
+static PyObject *__pyx_kp_s_expected_a_single_document_in_th;
+static PyObject *__pyx_kp_u_expected_a_single_document_in_th;
+static PyObject *__pyx_n_s_explicit;
+static PyObject *__pyx_n_s_explicit_end;
+static PyObject *__pyx_n_s_explicit_start;
+static PyObject *__pyx_kp_s_file;
+static PyObject *__pyx_kp_u_file;
+static PyObject *__pyx_n_s_flow_style;
+static PyObject *__pyx_kp_s_found_duplicate_anchor_first_occ;
+static PyObject *__pyx_kp_u_found_duplicate_anchor_first_occ;
+static PyObject *__pyx_kp_s_found_undefined_alias;
+static PyObject *__pyx_kp_u_found_undefined_alias;
+static PyObject *__pyx_n_s_get_version;
+static PyObject *__pyx_n_s_get_version_string;
+static PyObject *__pyx_kp_u_id_03d;
+static PyObject *__pyx_n_s_implicit;
+static PyObject *__pyx_n_s_import;
+static PyObject *__pyx_kp_s_in_s_line_d_column_d;
+static PyObject *__pyx_n_s_indent;
+static PyObject *__pyx_n_s_index;
+static PyObject *__pyx_kp_s_invalid_event_s;
+static PyObject *__pyx_kp_u_invalid_event_s;
+static PyObject *__pyx_n_s_line;
+static PyObject *__pyx_n_s_line_break;
+static PyObject *__pyx_n_s_main;
+static PyObject *__pyx_n_s_major;
+static PyObject *__pyx_n_s_minor;
+static PyObject *__pyx_n_s_name;
+static PyObject *__pyx_kp_s_no_emitter_error;
+static PyObject *__pyx_kp_u_no_emitter_error;
+static PyObject *__pyx_kp_s_no_parser_error;
+static PyObject *__pyx_kp_u_no_parser_error;
+static PyObject *__pyx_n_s_nodes;
+static PyObject *__pyx_n_s_parser;
+static PyObject *__pyx_n_s_patch;
+static PyObject *__pyx_n_s_pointer;
+static PyObject *__pyx_n_s_pyx_vtable;
+static PyObject *__pyx_n_s_read;
+static PyObject *__pyx_n_s_reader;
+static PyObject *__pyx_n_s_representer;
+static PyObject *__pyx_n_s_resolve;
+static PyObject *__pyx_kp_s_root_src_pyyaml_ext__yaml_pyx;
+static PyObject *__pyx_n_s_scanner;
+static PyObject *__pyx_kp_s_second_occurence;
+static PyObject *__pyx_kp_u_second_occurence;
+static PyObject *__pyx_n_s_serializer;
+static PyObject *__pyx_kp_s_serializer_is_already_opened;
+static PyObject *__pyx_kp_u_serializer_is_already_opened;
+static PyObject *__pyx_kp_s_serializer_is_closed;
+static PyObject *__pyx_kp_u_serializer_is_closed;
+static PyObject *__pyx_kp_s_serializer_is_not_opened;
+static PyObject *__pyx_kp_u_serializer_is_not_opened;
+static PyObject *__pyx_n_s_start_mark;
+static PyObject *__pyx_n_s_stream;
+static PyObject *__pyx_n_s_style;
+static PyObject *__pyx_n_s_tag;
+static PyObject *__pyx_kp_s_tag_handle_must_be_a_string;
+static PyObject *__pyx_kp_u_tag_handle_must_be_a_string;
+static PyObject *__pyx_kp_s_tag_must_be_a_string;
+static PyObject *__pyx_kp_u_tag_must_be_a_string;
+static PyObject *__pyx_kp_s_tag_prefix_must_be_a_string;
+static PyObject *__pyx_kp_u_tag_prefix_must_be_a_string;
+static PyObject *__pyx_n_s_tags;
+static PyObject *__pyx_n_s_test;
+static PyObject *__pyx_n_s_tokens;
+static PyObject *__pyx_kp_s_too_many_tags;
+static PyObject *__pyx_kp_u_too_many_tags;
+static PyObject *__pyx_kp_s_unicode_string;
+static PyObject *__pyx_kp_u_unicode_string;
+static PyObject *__pyx_kp_s_unknown_event_type;
+static PyObject *__pyx_kp_u_unknown_event_type;
+static PyObject *__pyx_kp_s_unknown_token_type;
+static PyObject *__pyx_kp_u_unknown_token_type;
+static PyObject *__pyx_kp_s_utf_16_be;
+static PyObject *__pyx_kp_u_utf_16_be;
+static PyObject *__pyx_kp_s_utf_16_le;
+static PyObject *__pyx_kp_u_utf_16_le;
+static PyObject *__pyx_kp_u_utf_8;
+static PyObject *__pyx_n_s_value;
+static PyObject *__pyx_kp_s_value_must_be_a_string;
+static PyObject *__pyx_kp_u_value_must_be_a_string;
+static PyObject *__pyx_n_s_version;
+static PyObject *__pyx_n_s_width;
+static PyObject *__pyx_n_s_write;
+static PyObject *__pyx_n_s_yaml;
+static PyObject *__pyx_n_s_yaml_2;
+static PyObject *__pyx_int_0;
+static PyObject *__pyx_int_1;
+static PyObject *__pyx_tuple_;
+static PyObject *__pyx_tuple__2;
+static PyObject *__pyx_tuple__4;
+static PyObject *__pyx_tuple__5;
+static PyObject *__pyx_tuple__11;
+static PyObject *__pyx_tuple__12;
+static PyObject *__pyx_tuple__13;
+static PyObject *__pyx_tuple__14;
+static PyObject *__pyx_tuple__15;
+static PyObject *__pyx_tuple__16;
+static PyObject *__pyx_tuple__20;
+static PyObject *__pyx_tuple__21;
+static PyObject *__pyx_tuple__22;
+static PyObject *__pyx_tuple__23;
+static PyObject *__pyx_tuple__24;
+static PyObject *__pyx_tuple__25;
+static PyObject *__pyx_tuple__26;
+static PyObject *__pyx_tuple__27;
+static PyObject *__pyx_tuple__28;
+static PyObject *__pyx_tuple__29;
+static PyObject *__pyx_tuple__30;
+static PyObject *__pyx_tuple__31;
+static PyObject *__pyx_tuple__32;
+static PyObject *__pyx_tuple__33;
+static PyObject *__pyx_tuple__34;
+static PyObject *__pyx_tuple__35;
+static PyObject *__pyx_tuple__36;
+static PyObject *__pyx_tuple__37;
+static PyObject *__pyx_tuple__38;
+static PyObject *__pyx_tuple__39;
+static PyObject *__pyx_tuple__40;
+static PyObject *__pyx_tuple__41;
+static PyObject *__pyx_tuple__42;
+static PyObject *__pyx_tuple__43;
+static PyObject *__pyx_tuple__44;
+static PyObject *__pyx_tuple__45;
+static PyObject *__pyx_tuple__46;
+static PyObject *__pyx_tuple__47;
+static PyObject *__pyx_tuple__48;
+static PyObject *__pyx_tuple__49;
+static PyObject *__pyx_tuple__50;
+static PyObject *__pyx_tuple__51;
+static PyObject *__pyx_tuple__52;
+static PyObject *__pyx_tuple__53;
+static PyObject *__pyx_tuple__54;
+static PyObject *__pyx_tuple__55;
+static PyObject *__pyx_tuple__56;
+static PyObject *__pyx_tuple__57;
+static PyObject *__pyx_tuple__58;
+static PyObject *__pyx_tuple__59;
+static PyObject *__pyx_tuple__60;
+static PyObject *__pyx_tuple__61;
+static PyObject *__pyx_tuple__62;
+static PyObject *__pyx_tuple__63;
+static PyObject *__pyx_tuple__64;
+static PyObject *__pyx_tuple__65;
+static PyObject *__pyx_tuple__66;
+static PyObject *__pyx_tuple__67;
+static PyObject *__pyx_tuple__68;
+static PyObject *__pyx_tuple__69;
+static PyObject *__pyx_tuple__70;
+static PyObject *__pyx_tuple__71;
+static PyObject *__pyx_tuple__72;
+static PyObject *__pyx_tuple__74;
+static PyObject *__pyx_codeobj__73;
+static PyObject *__pyx_codeobj__75;
+
+/* "_yaml.pyx":4
+ * import yaml
+ * 
+ * def get_version_string():             # <<<<<<<<<<<<<<
+ *     cdef char *value
+ *     value = yaml_get_version_string()
+ */
+
+/* Python wrapper */
+static PyObject *__pyx_pw_5_yaml_1get_version_string(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
+static PyMethodDef __pyx_mdef_5_yaml_1get_version_string = {__Pyx_NAMESTR("get_version_string"), (PyCFunction)__pyx_pw_5_yaml_1get_version_string, METH_NOARGS, __Pyx_DOCSTR(0)};
+static PyObject *__pyx_pw_5_yaml_1get_version_string(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
+  PyObject *__pyx_r = 0;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("get_version_string (wrapper)", 0);
+  __pyx_r = __pyx_pf_5_yaml_get_version_string(__pyx_self);
+
+  /* function exit code */
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+static PyObject *__pyx_pf_5_yaml_get_version_string(CYTHON_UNUSED PyObject *__pyx_self) {
+  char *__pyx_v_value;
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  int __pyx_t_1;
+  PyObject *__pyx_t_2 = NULL;
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+  __Pyx_RefNannySetupContext("get_version_string", 0);
+
+  /* "_yaml.pyx":6
+ * def get_version_string():
+ *     cdef char *value
+ *     value = yaml_get_version_string()             # <<<<<<<<<<<<<<
+ *     if PY_MAJOR_VERSION < 3:
+ *         return value
+ */
+  __pyx_v_value = yaml_get_version_string();
+
+  /* "_yaml.pyx":7
+ *     cdef char *value
+ *     value = yaml_get_version_string()
+ *     if PY_MAJOR_VERSION < 3:             # <<<<<<<<<<<<<<
+ *         return value
+ *     else:
+ */
+  __pyx_t_1 = ((PY_MAJOR_VERSION < 3) != 0);
+  if (__pyx_t_1) {
+
+    /* "_yaml.pyx":8
+ *     value = yaml_get_version_string()
+ *     if PY_MAJOR_VERSION < 3:
+ *         return value             # <<<<<<<<<<<<<<
+ *     else:
+ *         return PyUnicode_FromString(value)
+ */
+    __Pyx_XDECREF(__pyx_r);
+    __pyx_t_2 = __Pyx_PyBytes_FromString(__pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 8; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_r = __pyx_t_2;
+    __pyx_t_2 = 0;
+    goto __pyx_L0;
+  }
+  /*else*/ {
+
+    /* "_yaml.pyx":10
+ *         return value
+ *     else:
+ *         return PyUnicode_FromString(value)             # <<<<<<<<<<<<<<
+ * 
+ * def get_version():
+ */
+    __Pyx_XDECREF(__pyx_r);
+    __pyx_t_2 = PyUnicode_FromString(__pyx_v_value); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 10; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_r = __pyx_t_2;
+    __pyx_t_2 = 0;
+    goto __pyx_L0;
+  }
+
+  /* "_yaml.pyx":4
+ * import yaml
+ * 
+ * def get_version_string():             # <<<<<<<<<<<<<<
+ *     cdef char *value
+ *     value = yaml_get_version_string()
+ */
+
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_AddTraceback("_yaml.get_version_string", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = NULL;
+  __pyx_L0:;
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* "_yaml.pyx":12
+ *         return PyUnicode_FromString(value)
+ * 
+ * def get_version():             # <<<<<<<<<<<<<<
+ *     cdef int major, minor, patch
+ *     yaml_get_version(&major, &minor, &patch)
+ */
+
+/* Python wrapper */
+static PyObject *__pyx_pw_5_yaml_3get_version(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/
+static PyMethodDef __pyx_mdef_5_yaml_3get_version = {__Pyx_NAMESTR("get_version"), (PyCFunction)__pyx_pw_5_yaml_3get_version, METH_NOARGS, __Pyx_DOCSTR(0)};
+static PyObject *__pyx_pw_5_yaml_3get_version(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) {
+  PyObject *__pyx_r = 0;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("get_version (wrapper)", 0);
+  __pyx_r = __pyx_pf_5_yaml_2get_version(__pyx_self);
+
+  /* function exit code */
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+static PyObject *__pyx_pf_5_yaml_2get_version(CYTHON_UNUSED PyObject *__pyx_self) {
+  int __pyx_v_major;
+  int __pyx_v_minor;
+  int __pyx_v_patch;
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  PyObject *__pyx_t_1 = NULL;
+  PyObject *__pyx_t_2 = NULL;
+  PyObject *__pyx_t_3 = NULL;
+  PyObject *__pyx_t_4 = NULL;
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+  __Pyx_RefNannySetupContext("get_version", 0);
+
+  /* "_yaml.pyx":14
+ * def get_version():
+ *     cdef int major, minor, patch
+ *     yaml_get_version(&major, &minor, &patch)             # <<<<<<<<<<<<<<
+ *     return (major, minor, patch)
+ * 
+ */
+  yaml_get_version((&__pyx_v_major), (&__pyx_v_minor), (&__pyx_v_patch));
+
+  /* "_yaml.pyx":15
+ *     cdef int major, minor, patch
+ *     yaml_get_version(&major, &minor, &patch)
+ *     return (major, minor, patch)             # <<<<<<<<<<<<<<
+ * 
+ * #Mark = yaml.error.Mark
+ */
+  __Pyx_XDECREF(__pyx_r);
+  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_major); if (unlikely(!__pyx_t_1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_minor); if (unlikely(!__pyx_t_2)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_patch); if (unlikely(!__pyx_t_3)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; __pyx_clineno = __LINE__; goto __pyx_L1_error;}
+  __Pyx_GOTREF(__pyx_t_4);
+  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
+  __Pyx_GIVEREF(__pyx_t_1);
+  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_3);
+  __pyx_t_1 = 0;
+  __pyx_t_2 = 0;
+  __pyx_t_3 = 0;
+  __pyx_r = __pyx_t_4;
+  __pyx_t_4 = 0;
+  goto __pyx_L0;
+
+  /* "_yaml.pyx":12
+ *         return PyUnicode_FromString(value)
+ * 
+ * def get_version():             # <<<<<<<<<<<<<<
+ *     cdef int major, minor, patch
+ *     yaml_get_version(&major, &minor, &patch)
+ */
+
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_AddTraceback("_yaml.get_version", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = NULL;
+  __pyx_L0:;
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* "_yaml.pyx":72
+ *     cdef readonly pointer
+ * 
+ *     def __init__(self, object name, int index, int line, int column,             # <<<<<<<<<<<<<<
+ *             object buffer, object pointer):
+ *         self.name = name
+ */
+
+/* Python wrapper */
+static int __pyx_pw_5_yaml_4Mark_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static int __pyx_pw_5_yaml_4Mark_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  PyObject *__pyx_v_name = 0;
+  int __pyx_v_index;
+  int __pyx_v_line;
+  int __pyx_v_column;
+  PyObject *__pyx_v_buffer = 0;
+  PyObject *__pyx_v_pointer = 0;
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+  int __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
+  {
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_name,&__pyx_n_s_index,&__pyx_n_s_line,&__pyx_n_s_column,&__pyx_n_s_buffer,&__pyx_n_s_pointer,0};
+    PyObject* values[6] = {0,0,0,0,0,0};
+    if (unlikely(__pyx_kwds)) {
+      Py_ssize_t kw_args;
+      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
+      switch (pos_args) {
+        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
+        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
+        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+        case  0: break;
+        default: goto __pyx_L5_argtuple_error;
+      }
+      kw_args = PyDict_Size(__pyx_kwds);
+      switch (pos_args) {
+        case  0:
+        if (likely((values[0] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_name)) != 0)) kw_args--;
+        else goto __pyx_L5_argtuple_error;
+        case  1:
+        if (likely((values[1] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_index)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 1); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        }
+        case  2:
+        if (likely((values[2] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_line)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 2); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        }
+        case  3:
+        if (likely((values[3] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_column)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 3); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        }
+        case  4:
+        if (likely((values[4] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_buffer)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 4); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        }
+        case  5:
+        if (likely((values[5] = PyDict_GetItem(__pyx_kwds, __pyx_n_s_pointer)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, 5); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+        }
+      }
+      if (unlikely(kw_args > 0)) {
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+      }
+    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
+      goto __pyx_L5_argtuple_error;
+    } else {
+      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
+      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
+    }
+    __pyx_v_name = values[0];
+    __pyx_v_index = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_index == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_line = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_line == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_column = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_column == (int)-1) && PyErr_Occurred())) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+    __pyx_v_buffer = values[4];
+    __pyx_v_pointer = values[5];
+  }
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("__init__", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); {__pyx_filename = __pyx_f[0]; __pyx_lineno = 72; __pyx_clineno = __LINE__; goto __pyx_L3_error;}
+  __pyx_L3_error:;
+  __Pyx_AddTraceback("_yaml.Mark.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __Pyx_RefNannyFinishContext();
+  return -1;
+  __pyx_L4_argument_unpacking_done:;
+  __pyx_r = __pyx_pf_5_yaml_4Mark___init__(((struct __pyx_obj_5_yaml_Mark *)__pyx_v_self), __pyx_v_name, __pyx_v_index, __pyx_v_line, __pyx_v_column, __pyx_v_buffer, __pyx_v_pointer);
+
+  /* function exit code */
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+static int __pyx_pf_5_yaml_4Mark___init__(struct __pyx_obj_5_yaml_Mark *__pyx_v_self, PyObject *__pyx_v_name, int __pyx_v_index, int __pyx_v_line, int __pyx_v_column, PyObject *__pyx_v_buffer, PyObject *__pyx_v_pointer) {
+  int __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("__init__", 0);
+
+  /* "_yaml.pyx":74
+ *     def __init__(self, object name, int index, int line, int column,
+ *             object buffer, object pointer):
+ *         self.name = name             # <<<<<<<<<<<<<<
+ *         self.index = index
+ *         self.line = line
+ */
+  __Pyx_INCREF(__pyx_v_name);
+  __Pyx_GIVEREF(__pyx_v_name);
+  __Pyx_GOTREF(__pyx_v_self->name);
+  __Pyx_DECREF(__pyx_v_self->name);
+  __pyx_v_self->name = __pyx_v_name;
+
+  /* "_yaml.pyx":75
+ *             object buffer, object pointer):
+ *         self.name = name
+ *         self.index = index             # <<<<<<<<<<<<<<
+ *         self.line = line
+ *         self.column = column
+ */
+  __pyx_v_self->index = __pyx_v_index;
+
+  /* "_yaml.pyx":76
+ *         self.name = name
+ *         self.index = index
+ *         self.line = line             # <<<<<<<<<<<<<<
+ *         self.column = column
+ *         self.buffer = buffer
+ */
+  __pyx_v_self->line = __pyx_v_line;
+
+  /* "_yaml.pyx":77
+ *         self.index = index
+ *         self.line = line
+ *         self.column = column             # <<<<<<<<<<<<<<
+ *         self.buffer = buffer
+ *         self.pointer = pointer
+ */
+  __pyx_v_self->column = __pyx_v_column;
+
+  /* "_yaml.pyx":78
+ *         self.line = line
+ *         self.column = column
+ *         self.buffer = buffer             # <<<<<<<<<<<<<<
+ *         self.pointer = pointer